uni-app Native.js调用原生播放video视频的样例
uni-app Native.js调用原生播放video视频的样例
说明文档和样例中都没有找到html5 video的资料,HBuilder不支持调用手机移动端的本地播放器或第三方视频播放器吗?
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
更多关于uni-app Native.js调用原生播放video视频的样例的实战教程也可以访问 https://www.itying.com/category-93-b0.html
ios怎么搞?
iOS建议使用video标签,@697 确认native.js能否调用原生处理
看了这个我还是不懂怎么搞,复制了上述示例代码(捡的了网络视频地址)运行没有生效,是不是哪里还缺什么东西?求指教
这种也无法实现分段的视频播放。
这个方式也不能内嵌在网页上,是跳出来单独打开系统视频播放器播放的
确实能够正常的播放视频了,怎么修改视频的名称呢,网络视频的名称太长了
@46 这样调用会启动手机第三方应用,比如迅雷、360下载等下载软件… 不想视频随便下载该怎么处理????
为什么这段代码 真机调试的时候正常 云端打包以后就无法执行了
按照上面这个代码实现了,确实可以播放视频,但是我想在webview中按照制定大小显示出来,应该怎么处理呢?
为什么不把IOS播放网络视频的也写进去呢,就当个统一
按这个方法播放视频,小米,opp手机直接拉起浏览器下载
我的直播程序 有画面 没声音 怎么办??
视频播放很重要 希望DCloud 把视频直播 这里 弄的强悍 一些
我觉得视频播放很重要,现在什么app不需要音频和视频播放呢?何况现在直播大火的今天,如果这个成为hbuilder的短板的话,我相信很多项目都不会采用这个开发app,因为不知道后面会有多少坑等着他们,伤不起的,所以强烈需求hbuilder升级关于视频播放的东西,这样才能应对各种需求,否则只能做做小项目,而且体验也不如原生。
plus.runtime可以调用任意三方app。
在Hello H5+里的runtime部分也可以看示例。
HTML5里的video标签,在不同的手机上有兼容性问题,如果是服务器的视频,也不流畅。
所以还是使用js单独写,调用外部视频播放器比较靠谱点。
有例子吗?
我的意思不是要调用第三方APP,而是视频播放器控件。
HBuilder的vedio怎么调用安卓原生的视频播放器?
plus.runtime.openFile() 不行吗?
回复 小郭哥:openFile 播放器路径 知道么?
怎么通过js调用安卓原生的VideoView控件或MediaPlayer控件呢?
如果我想动态生成一个安卓控件比如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。
iOS用HTML5的video标签就可以
回复 DCloud_heavensoft:发现在iOS下使用video标签,加了src属性之后,会造成mui-action-back的报错,用mui.back也报错。删了src属性就没问题。但是删了src属性,这个video标签就没意义了啊
回复 尘岳two:额,貌似离的有点远。请联系下DCloud_mui_fxy看看怎么回事。
回复 DCloud_heavensoft:恩,昨天已经问了一个问题了,他说已经登记了。
有没有ios的啊
只有安卓的,而且这种是扑捉不到播放进度等一些事件的,感觉没什么用。
主要是现在有个项目急需的,有没有人帮我写一个ios的啊,进度事件都可以先不管了,没办法的,唉
iOS的HTML5自带video很好用,就是因为Android的video做的不好,才有这篇帖子。
ipad上用vedio播放mp4视频,页面上啥都没有,iphone播放是好的
html5的video 有局限性 比如控制不能拖动进度条,手势控制等等
有没有app开发中的demo 视频播放到末尾,一直来回播放最后一秒,@ended事件也无效
哦哦 谢谢
安卓播放返回后好像有个问题,我点了播放,自动横屏全屏播放了,我退出播放再点其它页面的时候,所有页面都变成横屏的了,而且不能返回
webview可以控制横竖屏,你可以手动控制。plus.screen.lockOrientation
我们也检查下怎么回事。
嗯 我就是控制了,所以横屏了就转不回来了,我现在要把手机的旋转和设置都可以转,变那样后才能转过来
有没有 试过 怎么样 才能实现自动播放啊?
没弄成功的
在子页面里能不能使用 plus.statistic 记录原生播放video视频的时间哪?
比如在子页面打开时开始计时,在子页面关闭时停止计时。
跳转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);
求高人指点<br>
请问这个问题解决了么,我也遇到了,想拉起新的Activity
看了这个我还是不懂怎么搞,复制了上述示例代码(捡的了网络视频地址)运行没有生效,是不是哪里还缺什么东西?求指教
怎么实现分段播放??
视频是分段的, 怎么破?
能运行了,关键是如果我想把它做到页面中呢?怎么跟页面结合?
比如我想把播放窗口放在屏幕上方,下方放几个按钮呢?
多段视频有解决方案么?
video标签在页面上点击只有声音没有图像,非得全屏以后才有视频,这是怎么回事?小米Note
因为Android5上默认关闭了硬件加速,需要在打开包含视频的页面传参数开启该webview的硬件加速,详见webview的style参数
对这个视频播放的问题还是看得不明不白,有人给一个具体的示例吗?
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
我这写了一样,但是闪退,这是什么鬼
新建一个activity,是不是要// compile files(‘libs/android-support-v4.jar’) compile ‘com.android.support:appcompat-v7:19.1.0’,这样写
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);
});
mark
mark
mark
有个问题,我的小米,调用时出现“打开方式”其中有“下载管理”,可以下载视频,怎么才能避免?
当然,以下是一个关于如何在uni-app中使用Native.js调用原生播放video视频的示例代码。该示例展示了如何在uni-app项目中通过Native.js接口来调用原生视频播放功能。
1. 配置项目
首先,确保你的uni-app项目已经配置好Native.js的支持。通常,这需要在manifest.json
文件中进行相应的配置。
2. 编写Native.js模块
在nativeplugins
目录下创建一个新的原生插件目录,例如NativeVideoPlayer
,并在其中编写NativeVideoPlayer.js
文件。
// NativeVideoPlayer.js
module.exports = {
playVideo: function(url) {
// 获取原生视频播放器对象
let player = plus.video.create('video', {
top: '0px',
left: '0px',
width: '100%',
height: '100%',
autoplay: true,
showCenterPlayBtn: true
}, {
controls: 'default'
});
// 设置视频源
player.setSrc(url);
// 添加到页面
document.body.appendChild(player);
}
};
3. 在uni-app中调用Native.js模块
在你的uni-app页面中,通过plus.nativeUI.importClass
方法导入并使用Native.js模块。
<template>
<view>
<button @click="playVideo">播放视频</button>
</view>
</template>
<script>
export default {
methods: {
playVideo() {
if (window.plus) {
// 导入Native.js模块
let NativeVideoPlayer = plus.nativeUI.importClass('NativeVideoPlayer');
// 调用playVideo方法播放视频
NativeVideoPlayer.playVideo('https://www.example.com/path/to/your/video.mp4');
} else {
console.error('Native.js is not supported in this environment.');
}
}
}
}
</script>
<style>
/* 样式可以根据需要进行调整 */
</style>
注意事项
- 环境检测:在调用Native.js功能前,务必检查
window.plus
是否存在,以确保代码在非原生环境中不会报错。 - 路径配置:确保Native.js模块文件路径正确,并在
manifest.json
中正确配置。 - 权限:在调用视频播放功能时,确保应用已经获得了必要的权限,如网络访问权限等。
通过以上步骤,你可以在uni-app中成功调用Native.js实现原生视频播放功能。根据实际需求,你可以进一步扩展和优化该示例代码。