解决手机Windows Mobile系统无法获取DRM License问题
近段时间在做手机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可采用此方法便可获取成功。