IOS媒体在函数中无法播放的问题

事情是这样的,客户需求在手机上向上滑动触发视频播放,于是我打包了这一系列动作的函数,包括界面切换,视频播放,以及背景音乐暂停,以便在触摸滑动的时候调用

function mv() {
    $('.block').hide();
    $('#mv')[0].play();
    $('#muzak')[0].pause();
    $('.muzak').addClass('active');
}

然后我们使用API中的向上滑动写了一简单的事件

$('.moive-touch').bindmove('touchup','mv()');

真机测试的时候,安卓没有问题,但IOS出现了视频没有播放的情况,但整个函数中,只有视频播放没有执行,其他的背景音乐暂停等都有效
一开始怀疑是视频文件压缩格式的时候,删除了一些基本的文件信息,导致IOS无法播放,但换了几个视频依然如此
也曾怀疑UME的触摸API存在兼容问题,于是写了一个简单的JQ触摸测试

$('.moive-touch').on("touchmove", function(e){
    e.preventDefault();
    mov();
});

但经过测试,依然是视频不能播放,其他动作有效,这就很迷茫
经过漫长的瞎琢磨,最终
……
还是解决不了

无奈之下,咨询了一位资深手机开发大佬,他说需要在项目开头执行一遍播放暂停
比如在项目开头的第一个按钮这样来一遍

$('.btn').click(function(){
    $('#mv')[0].play();
    $('#mv')[0].pause();
});

媒体文件在后面其他页面使用的时候IOS上才正常播放,原因他说他也不知道,但这能解决问题
于是陷入了无限的查询搜索中
……
一个小时后
……
算了,又不是不能用

Tags
no tags
0 Comments
Leave a Comments

Latest comments
tag cloud