近段时间在做手机WAP视频项目时,用户下载DRM加密视频时需要进行License预发放,发现DRM License无法获取成功。
页面获取License代码如下:
License获取object:
< object name ="netobj" classid ="clsid:A9FC132B-096D-460B-B7D5-1DB0FAE0C062" id ="netobj" width ="0" ></ object >
Javascript代码:
1 < script type = ' text/javascript ' >
2 try
3 {
4 netobj.GetLicenseFromURL ( '' , ' " + url + " ' );
5 alert( ' 获取License成功! ' ); " );
6 }
7 catch (e)
8 {
9 alert('无法获取许可证:: ' + e.name + '. Error message: ' + e.message);
10 }
11 </script>
以上代码在PC机上可以获取License,但是一到手机上运行便怎么也无法获取,后来将代码改造了一下:
HTML代码:
<% = printObject() %>
在ASPX页面上只加上了这一句,在后台CS文件中添加了该方法:
1 public string printObject()
2 {
3 // 获取License页面地址
4 string url = " http://192.168.1.5:8009/IssueLicense.aspx " + para;
5
6 Response.Write( " <OBJECT name='netobj' classid='clsid:A9FC132B-096D-460B-B7D5-1DB0FAE0C062' height='0' id='netobj' width='0' /></OBJECT> " );
7 Response.Write( " <script type='text/javascript'> " );
8 Response.Write( " try{ " );
9 Response.Write( " netobj.GetLicenseFromURL ('', ' " + url + " '); " );
10 Response.Write( " alert('获取License成功!'); " );
11 Response.Write( " } catch (e) {alert('无法获取许可证:: ' + e.name + '. Error message: ' + e.message); } " );
12 Response.Write( " </script> " );
13 return "" ;
14 }
采用以上写法,在PC上以及手机上都可以成功获取License。
但是原因未明,唯一的解释便是在手机上需要用Response.Write的方法将object代码写到页面,该object才生效。
大家以后如果做手机视频网站时需要预发放License可采用此方法便可获取成功。