Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Windows教程綜合 >> Windows技巧 >> 在頁面中控制媒體流的起播點和播放長度經驗技巧

在頁面中控制媒體流的起播點和播放長度經驗技巧

日期:2017/2/8 11:31:29      編輯:Windows技巧
 

  近來在一個web項目中,客戶提出需要在試聽的音頻文件中,輸入開始時間和結束時間,然後從開始時間播放,到結束時間停止。在google中搜索了幾次,都找不到相關的文檔,只有自己進行研究了。

  剛開始的時候,將主要精力放在了Media Player控件的屬性上,找到了以下幾個相關的屬性:

  CurrentPosition 返回或設置剪輯的當前位置(雙精度型)。

  Duration 返回或設置剪輯剪輯的播放時間(雙精度型)。

  SelectionEnd 返回或設置流的結束位置(雙精度型)。

  SelectionStart 返回或設置流的起始位置(雙精度型)。

  經過測試,通過控制CurrentPosition屬性,可以實現需要的功能。而其他三個屬性基本上不起任何作用。但是,當頁面放到遠程服務器的時候,發現該功能不起作用了。原來在緩沖還沒到達開始播出時間的時候,是跳轉不了。

  後來只能埋頭於研究Windows Media Player 9 Series SDK,發現在Windows Media Metafile Elements Reference中STARTTIME、DURATION兩個Element正是我所需要的。而要使用這兩個Element需要在asx文件中。

asx文件格式如下:

<ASX VERSION="3.0">

<TITLE>Your title here</TITLE>

<ENTRY>

<REF HREF ="音頻文件訪問路徑" />

<STARTTIME VALUE="0:30.0" />

<DURATION VALUE="00:50" />

</ENTRY>

</ASX>

經過多次測試,方案可行。現在的問題就簡單了。就是讓用戶提交開始時間和結束時間後生成asx文件,然後將文件送到media player就行了。

以下是我做的訪問界面:

  不過在測試過程中,發現文件傳送過去了,但media player播放不了,奇怪了。測試發現直接用本地的media player播放是沒有問題的,那麼問題肯定是出在頁面中media player的屬性上。我將media player的參數減少到只剩下filename一個屬性,發現居然行了。然後再將autostart屬性設置為false,發現不能工作了。最後只好將autostart屬性設置為true。

最終播放器的德屬性設置如下:

<param name="AutoStart" value="true">

<param name="Filename" value="">

<param name="ShowPositionControls" value="true">

<param name="ShowStatusBar" value="true">

Copyright © Windows教程網 All Rights Reserved