隱藏<ASP:MediaPlayer>控制元件播放檔案地址
微軟山西移動流媒體釋出平臺時遇到MediaPlayer控制元件播放地址隱藏的問題
在播放視訊時,直接檢視頁面原始檔可看到視訊檔案地址,MediaPlayer將在頁面上加上如下初始化語句:
1Sys.Application.add_init(function() {
2 $create(Sys.UI.Silverlight.MediaPlayer, {"autoPlay":true,"mediaSource":"http://211.142.31.235/Nas1/VOD/CP0001/490Kbps/D/DI/DIA/DiaoZhongYuan1/DiaoZhongYuan1.wmv","scaleMode":2,"source":"UserControl/playerTheme/player.xaml","volume":1}, null, null, $get("myUserMediaPlayer_player_parent"));
3});
解決方案是先建立一個字串加密解密服務
加密、解密工具類:
1///
2 /// 對字串進行、加解密的工具類
3 ///
4 public class DESEncryptor
5 {
6 靜態公共方法
32
33 私有成員
63
64 公共屬性
122
123 建構函式
134
135 DES加密字串
161
162 DES解密字串
189}
加密、解密WebService,呼叫工具內加密、解密方法:
1///
2 /// Summary description for Service1
3 ///
4 [WebService(Namespace = "http://tempuri.org/")]
5 [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
6 [System.ComponentModel.ToolboxItem(false)]
7 // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
8 // [System.Web.Script.Services.ScriptService]
9 public class Service1 : System.Web.Services.WebService
10 {
11 ///
12 /// 加密
13 ///
14 /// 地址
15 ///
16 [WebMethod]
17 public string Encrypt(string url)
18 {
19 return DESEncryptor.ExecEncrypt(url);
20 }
21
22 ///
23 /// 解密
24 ///
25 /// 地址
26 ///
27 [WebMethod]
28 public string DeEncrypt(string url)
29 {
30 return DESEncryptor.ExecDeEncrypt(url);
31 }
32 }
在播放頁面載入時,先呼叫WebService內加密方法對播放地址進行加密,然後註冊JavaScript指令碼呼叫視訊檔案播放方法:
1protected void Page_Load(object sender, EventArgs e)
2 {
3 if (!IsPostBack)
4 {
5 //對播放地址進行加密
6 string encryptUrl = local.Encrypt(playUrl);
7 //註冊指令碼,呼叫javascript播放方法
8 Page.ClientScript.RegisterStartupScript(this.GetType(), "", " setTimeout(\"onPlay('" + encryptUrl + "')\",1000)", true);
9 }
10 }
JavaScript呼叫WebService通過微軟提供的WebService.htc實現,ASP.NET中使用WebService.htc需要在HTML程式碼中新增如下程式碼:
注意:該div必需在forms之外
Javascript程式碼:
1 function getUrl(str) {
2 //第一個引數是webservice的url,後面是名稱
3 serviceDiv.useService("http://localhost:88/Service1.asmx?WSDL", "news");
4 //設定一個回撥函式,service返回結果的時候回撥;第一個引數是回撥函式的名稱,後面的是webservice的引數
5 intCallID = serviceDiv.news.callService(url_result, "DeEncrypt", str); //這裡有兩個引數..
6 }
7
8 function url_result(result)//回撥函式
9 {
10 var media_player = $find('myUserMediaPlayer_player');
11 media_player.set_mediaSource(result.value);
12 media_player.set_autoPlay(true);
13 }
14
15 function onPlay(str) {
16 getUrl(str);
17 }
有幾點需說明:
1. 為什麼在Page_Load事件裡註冊指令碼不直接呼叫Javascript內播放方法,因為頁面需完全載入後,WebService.htc才會被初始化,所以我用setTimeout方法延遲一段時間再呼叫播放方法。
2. 大家在使用WebService回撥函式時記得判斷返回結果是否成功。
通過以上方法,在頁面上檢視原始檔便無法檢視到播放檔案地址了,MediaPlayer初始化語句更新為如下:
1Sys.Application.add_init(function() {
2 $create(Sys.UI.Silverlight.MediaPlayer, {"autoPlay":true,"scaleMode":1,"source":"../UserControl/playerTheme/VIPPlayer.xaml","volume":1}, null, null, $get("ump_player_parent"));
3});
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-609338/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MAC如何顯示隱藏檔案和隱藏隱藏檔案的命令Mac
- mac顯示隱藏檔案,取消顯示隱藏檔案Mac
- 隱藏檔案失效
- 輕鬆隱藏桌面檔案,檔案隱藏工具FileUnhiderIDE
- MacOS X隱藏和顯示隱藏檔案Mac
- Mac顯示和隱藏“隱藏檔案”命令Mac
- 隱藏檔案複製
- 利用登錄檔隱藏檔案
- Mac下顯示和隱藏隱藏檔案的命令Mac
- Funter for Mac檔案隱藏工具Mac
- mac隱藏檔案顯示Mac
- Mac 顯示隱藏檔案Mac
- 隱藏資料夾怎麼取消隱藏 關閉隱藏檔案的辦法
- OSX中隱藏和顯示[隱藏檔案]的命令列命令列
- 如何使用Funter檔案隱藏工具
- 【macOS】顯示/隱藏 指定檔案Mac
- MACOS 如何顯示隱藏檔案Mac
- U盤檔案被隱藏怎麼恢復 U盤檔案恢復隱藏的方法
- win10 如何設定資料夾隱藏檔案 win10 如何隱藏檔案Win10
- win10系統u盤隱藏檔案怎麼取消隱藏Win10
- 不能正常顯示WINDOWS隱藏檔案Windows
- mac 隱藏檔案顯示 快捷鍵Mac
- 如何在“我的所有檔案”中隱藏某些檔案?
- 隨身碟檔案被隱藏怎麼恢復 隨身碟檔案恢復隱藏的方法
- win10如何去掉檔案隱藏屬性_win10檔案屬性怎麼去掉隱藏Win10
- 隱藏IP地址的四個作用
- 隱藏IP地址的三種方法
- win10怎麼顯示隱藏檔案_Win10系統顯示隱藏檔案步驟Win10
- win10桌面檔案被隱藏如何顯示_win10怎麼顯示桌面隱藏檔案Win10
- 隱藏任意程式,目錄檔案,登錄檔,埠
- 讓windows系統顯示隱藏檔案Windows
- Mac OS X 顯示和隱藏檔案Mac
- Mac OSX 下如何顯示隱藏檔案Mac
- 利用.user.ini檔案隱藏後門
- win10怎麼隱藏最近使用的檔案_win10系統隱藏最近常用檔案步驟Win10
- Win10檔案和資料夾如何隱藏 win10隱藏檔案及資料夾的方法Win10
- 統計檔案數目(不包括隱藏檔案/資料夾)
- win10怎麼設定隱藏檔案不可見_win10隱藏檔案不顯示設定教程Win10