android支持html5 video标签,实现在线播放吗
3个回答
2015-12-15 · 知道合伙人软件行家
关注
展开全部
Android 是可以通过html5的video来播放视频的。
一、需要在AndroidManifest.xml文件中声明需要使用HardwareAccelerate, 可以细化到Activity级别,如果不需要的View可以声明不要用加速,但是需要在代码中做
具体如下:
1如果要声明整个应用都要加速:< application ... android:hardwareAccelerated ="true">
2.如果要在Activity中声明,则:
<activity ... android:hardwareAccelerated="true" >
Window, getWindow.setFlags( WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
3.如果application或者activity都申明了要硬件加速,但是为了某些原因(比如省电?),一些View不需要硬件加速的话, view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
二、 需要在AndroidManifest.xml文件中用上<use-sdk></use-sdk>标签,而且如果是空的还不行,必须写上targetSDK或者minSDK,但是我试验过,不管写版本是多少都没有关系。理论上说,Android应该是从3.0( API Level 11)开始可以对2D渲染加速,但是我把targetSDK设置为5都可以使用的,但是这个标签不写还不行。
一般来说,上面的操作做了,就可以使用video标签播放视屏了,如果要支持全屏,还需要做一点操作: 给webview一个WebChromeClient对象,这个WebChromeClient对象需要实现onShowCustomView和onHideCustomView方法。
一、需要在AndroidManifest.xml文件中声明需要使用HardwareAccelerate, 可以细化到Activity级别,如果不需要的View可以声明不要用加速,但是需要在代码中做
具体如下:
1如果要声明整个应用都要加速:< application ... android:hardwareAccelerated ="true">
2.如果要在Activity中声明,则:
<activity ... android:hardwareAccelerated="true" >
Window, getWindow.setFlags( WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
3.如果application或者activity都申明了要硬件加速,但是为了某些原因(比如省电?),一些View不需要硬件加速的话, view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
二、 需要在AndroidManifest.xml文件中用上<use-sdk></use-sdk>标签,而且如果是空的还不行,必须写上targetSDK或者minSDK,但是我试验过,不管写版本是多少都没有关系。理论上说,Android应该是从3.0( API Level 11)开始可以对2D渲染加速,但是我把targetSDK设置为5都可以使用的,但是这个标签不写还不行。
一般来说,上面的操作做了,就可以使用video标签播放视屏了,如果要支持全屏,还需要做一点操作: 给webview一个WebChromeClient对象,这个WebChromeClient对象需要实现onShowCustomView和onHideCustomView方法。
展开全部
z 可以实现在线播放的
不过你要调用系统的播放器才可以,你自己看吧 我也被这个整了好久
如下代码:
//html
<video autoplay="autoplay" controls="controls" id="youku-html5-player-video" onclick="playVideo('IP/player/getRealM3U8/vid/XNDE4NjIwOTI0/type//video.m3u8');" preload="" src="IP/player/getRealM3U8/vid/XNDE4NjIwOTI0/type//video.m3u8" width="100%" x-webkit-airplay="allow">
Your browser does not support the video tag.</video>
<script>
function playVideo(video){
window.JSInterface.startVideo(video);
}
</script>
//java
JavaScriptInterface jsInterface = new JavaScriptInterface(this);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(jsInterface, "JSInterface");
public class JavaScriptInterface {
private Activity activity;
public JavaScriptInterface(Activity activiy) {
this.activity = activiy;
}
public void startVideo(String videoAddress){
//调用播放器(这里看你自己怎么写了)
Bundle bundle = new Bundle();
bundle.putString("path", address);
MyIntent.startIntent(WebViewActivity.this, MyIntent.VIDEO, bundle);
}
}
不过你要调用系统的播放器才可以,你自己看吧 我也被这个整了好久
如下代码:
//html
<video autoplay="autoplay" controls="controls" id="youku-html5-player-video" onclick="playVideo('IP/player/getRealM3U8/vid/XNDE4NjIwOTI0/type//video.m3u8');" preload="" src="IP/player/getRealM3U8/vid/XNDE4NjIwOTI0/type//video.m3u8" width="100%" x-webkit-airplay="allow">
Your browser does not support the video tag.</video>
<script>
function playVideo(video){
window.JSInterface.startVideo(video);
}
</script>
//java
JavaScriptInterface jsInterface = new JavaScriptInterface(this);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(jsInterface, "JSInterface");
public class JavaScriptInterface {
private Activity activity;
public JavaScriptInterface(Activity activiy) {
this.activity = activiy;
}
public void startVideo(String videoAddress){
//调用播放器(这里看你自己怎么写了)
Bundle bundle = new Bundle();
bundle.putString("path", address);
MyIntent.startIntent(WebViewActivity.this, MyIntent.VIDEO, bundle);
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是这样的,看浏览器支不支持了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询