王宇航
王宇航
  • 发布:2015-09-06 15:36
  • 更新:2015-12-17 15:12
  • 阅读:2925

关于iphone视频直接播放

分类:Native.js

iPhone的网页视频video标签默认是弹出播放器的,
我现在希望直接在页面上播放,经过研究只要设置两个属性即可
一个是在video标签里加入webkit-playsinline="true"
另外要更改webview属性allowsInlineMediaPlayback = 'YES'

目前我的代码如下
var selfView = plus.ios.currentWebview();
selfView.plusSetAttribute('allowsInlineMediaPlayback',true);

<video webkit-playsinline="true">
<source src="http://mobile.nbtv.cn/nas3/010004_t/2015/09/02/A14/A14efeeeifiiffjilml6w6_cug.mp4&quot; type="video/mp4">
</video>

但是没有出现期望的效果。请求帮助

2015-09-06 15:36 分享
已邀请:

最佳回复

DCloud_App_Array

DCloud_App_Array

HBuilder6.5.0已解决此问题,在manifest.json中的plus节点下添加allowsInlineMediaPlayback属性,值设置为true:

...  
plus:{  
    ...  
    allowsInlineMediaPlayback:true,  
    ...  
}  
...  
  • 淮风皖韵

    HBuilder6.5.0 什么时候发布呀

    2015-09-19 23:01

  • 王宇航 (作者)

    同问,6.5.0mac版本什么时候发布。@淮风皖韵:

    2015-09-21 09:54

  • 王宇航 (作者)

    我已经更新到mac版本的6.5了,也设置了allowsInlineMediaPlayback属性,全屏的问题是解决了,但是播放按钮没了,视频没法播放了。

    2015-09-28 17:08

王宇航

王宇航 (作者)

非常着急,这两天一直在找相关资料。在线等

DCloud_App_Array

DCloud_App_Array

这个应该是html5对video标签支持的问题,H5+runtime并没有做特殊的限制(使用的是系统Webview),受限需要确定iPhone是否支持此视频文件格式,验证方法是通过safari打开此html页面。
如果safari不支持,那么H5+runtime也是无法支持的。

  • 王宇航 (作者)

    视频是可以播放,但是在iPhone上是弹出一个播放器全屏播放,我想要的效果是不弹出播放器,直接在页面上播放,类似于ipad上播放视频的效果。
    目前我不明白的地方是,我上面两行代码的写法是否存在问题。

    2015-09-07 08:16

  • DCloud_App_Array

    目前不支持禁止全屏播放,native.js代码看起来没有什么问题,可能跟调用的时机有关系 @DCloud_IOS_XTY

    2015-09-08 20:05

王宇航

王宇航 (作者)

这个框架好是好,就是人气太少,论坛里几乎没有回答问题的人,百度也搜不到答案。chrome里调试其实也存在问题。

王宇航

王宇航 (作者)

快疯了,谁能帮下忙,好孤立无助

王宇航

王宇航 (作者)

完美解决了这个问题,非常开新,虽然耗时很长,但是我想这个问题应该是每个开发ios播放功能的菜鸟最头痛的事情。

在manifest.json中的plus节点下添加allowsInlineMediaPlayback属性,值设置为true:
然后再video标签里设置两个属性
<video webkit-playsinline="webkit-playsinline" controls="controls"></video>
就能够解决这个问题

  • 夜影森林

    我用的是HBuilder6.8.1,manifest.json的plus加了 "allowsInlineMediaPlayback":true,然后使用<video webkit-playsinline="webkit-playsinline" controls="controls" src="xxx.mp4"></video>,但是仍然在播放时会自动全屏,怎么样才能播放不全屏呀?你是怎么样解决的,我哪里错了?

    2015-12-17 14:03

  • 王宇航 (作者)

    我就更改了这两个地方就可以了。

    2015-12-30 17:20

pionner

pionner

万分感激

Tranum

Tranum

刚才脑袋刚特了,
xcode工程是能够直接找到webview的:

// 假设appFrame是一个PDRCoreAppFrame
appFrame.webView.allowsInlineMediaPlayback=YES; // 搞定


这样的话,如果不使用HBuilder,而是iOS离线打包的话,是不是就没法纠正这个错误了?
貌似manifest.json在xcode工程里没用啊。

另外,下面两种写法哪种是正确的:
allowsInlineMediaPlayback:true,
"allowsInlineMediaPlayback":"true",

夜影森林

夜影森林

我用的是HBuilder6.8.1,manifest.json的plus加了 "allowsInlineMediaPlayback":true,然后使用<video webkit-playsinline="webkit-playsinline" controls="controls" src="xxx.mp4"></video>,但是仍然在播放时会自动全屏,怎么样才能播放不全屏呀?你是怎么样解决的,我哪里错了?

  • Tranum

    之前直接在oc里写appFrame.webView.allowsInlineMediaPlayback=YES;的方式现在发现不好用了。
    但是在plus节点下增加"allowsInlineMediaPlayback":true发现即使是离线打包也是好用的。
    好久不用H5+了,可能是有更新吧。

    2016-04-14 10:11

要回复问题请先登录注册