说明文档和样例中都没有找到html5 vedio的资料,HBuilder不支持调用手机移动端的本地播放器或第三方视频播放器吗?
- 发布:2014-10-13 20:09
- 更新:2018-04-27 20:18
- 阅读:66792
最佳回复
-
HTML5有video标签,iOS可以直接用。Android上video标签不流畅,可以通过5+来解决。
-
本地视频可以使用plus API调用本地应用播放:
plus.runtime.openFile() -
网络视频可以通过native.js调用,如下示例:
var Intent = plus.android.importClass("android.content.Intent"); var Uri = plus.android.importClass("android.net.Uri"); var main = plus.android.runtimeMainActivity(); var intent=new Intent(Intent.ACTION_VIEW); var uri=Uri.parse("网络视频地址"); intent.setDataAndType(uri,"video/*"); main.startActivity(intent);
不管是哪种方式,如果遇到视频只有声音没有图像,是因为系统关闭了硬件加速。
硬件加速关闭可以在manifest里关,也可以在webview创建的时候通过参数设置是否允许该webview开启硬件加速。
在大多数手机上硬件加速是默认开启的,在部分Android5的手机上默认是关闭的,此时需要在打开包含视频的页面传参数开启该webview的硬件加速,详见webview的style参数。
但是也不要在Android5上默认就打开硬件加速,有的Android5对硬件加速兼容有问题,所以只在视频播放页面打开硬件加速即可。
这里有完整的视频开发指南http://ask.dcloud.net.cn/article/600
我觉得视频播放很重要,现在什么app不需要音频和视频播放呢?何况现在直播大火的今天,如果这个成为hbuilder的短板的话,我相信很多项目都不会采用这个开发app,因为不知道后面会有多少坑等着他们,伤不起的,所以强烈需求hbuilder升级关于视频播放的东西,这样才能应对各种需求,否则只能做做小项目,而且体验也不如原生。
车仔 (作者)
如果我想动态生成一个安卓控件比如VideoView,这样写出来报错(mVideoView为null)。请帮忙讲讲此类控件的调用原理。谢谢!
{{{
var VideoView = plus.android.importClass("android.widget.VideoView");
var mVideoView = new VideoView(VideoView .ACTION_VIEW);
mVideoView.setVideoURI(uri);
mVideoView.requestFocus();
mVideoView.start();
}}}
或
{{{
var MediaPlayer = plus.android.importClass("android.media.MediaPlayer");
var MediaPlayer mp = new MediaPlayer(MediaPlayer.ACTION_VIEW);
MediaPlayer.setDataSource("http://www.citynorth.cn/music/confucius.mp3");
}}}
请问调用IOS的视频播放器?代码怎么写啊,只看到安卓的调用代码Demo。
-
回复 DCloud_heavensoft:发现在iOS下使用video标签,加了src属性之后,会造成mui-action-back的报错,用mui.back也报错。删了src属性就没问题。但是删了src属性,这个video标签就没意义了啊
2015-01-29 15:46
跳转activity 没有反映
代码如下
var Intent = plus.android.importClass("android.content.Intent");
var TestActivity = plus.android.importClass("UI.TestActivity");
var intent=new Intent();
var main = plus.android.runtimeMainActivity();
intent.setClass(main.this,TestActivity.class);
```main.startActivity(intent);
求高人指点
video标签在页面上点击只有声音没有图像,非得全屏以后才有视频,这是怎么回事?小米Note
2、本地视频可以使用plus API调用本地应用播放:
plus.runtime.openFile()
这个处理,对于新手,这个真的不知道怎么写,没有完整的案例吗?
native层开启Activity(也就是插件)
在5+插件中如下开启:
public void PluginTestFunction(IWebview pWebview, JSONArray array)
{
Intent intent=new Intent();
intent.setClassName("com.wenju.widget","com.wenju.widget.Rtsp2Activity");
pWebview.getActivity().startActivity(intent);
}
其中com.wenju.widget为包名,com.wenju.widget.Rtsp2Activity为activity的全称
5+插件开发http://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/66
NJS调用ACtivity方法如下:
mui.plusReady(function() {
console.log("ok");
var activity = plus.android.runtimeMainActivity();
var Intent = plus.android.importClass("android.content.Intent");
var intent = new Intent();
intent.setClassName(activity, "com.wenju.widget.Rtsp2Activity");
activity.startActivity(intent);
});
h5_学习者
ios怎么搞?
2015-01-23 14:28
DCloud_App_Array
iOS建议使用video标签,@697 确认native.js能否调用原生处理
2015-01-23 16:47
atuxe
看了这个我还是不懂怎么搞,复制了上述示例代码(捡的了网络视频地址)运行没有生效,是不是哪里还缺什么东西?求指教
2015-07-27 14:16
hum
这种也无法实现分段的视频播放。
2015-07-31 00:20
gadget2k
这个方式也不能内嵌在网页上,是跳出来单独打开系统视频播放器播放的
2015-11-11 20:27
花猫阳
确实能够正常的播放视频了,怎么修改视频的名称呢,网络视频的名称太长了
2015-12-01 17:43
炭烧红豆奶茶
@46 这样调用会启动手机第三方应用,比如迅雷、360下载等下载软件.... 不想视频随便下载该怎么处理????
2016-01-14 16:06
zangcen
为什么这段代码 真机调试的时候正常 云端打包以后就无法执行了
2016-02-04 15:21
4***@qq.com
按照上面这个代码实现了,确实可以播放视频,但是我想在webview中按照制定大小显示出来,应该怎么处理呢?
2016-12-26 11:25
windyu
为什么不把IOS播放网络视频的也写进去呢,就当个统一
2017-03-06 14:44
黄X旭
按这个方法播放视频,小米,opp手机直接拉起浏览器下载
2017-06-27 10:41
3***@qq.com
我的直播程序 有画面 没声音 怎么办??
2019-05-15 16:58
3***@qq.com
视频播放很重要 希望DCloud 把视频直播 这里 弄的强悍 一些
2019-05-15 17:01