使用Ti.Media.VideoPlayer视频不会在iPhone 4上循环
我的应用程序有一个奇怪的问题 尝试在循环中播放视频(请参阅下面的代码)。视频播放器使用Ti.Media.VideoPlayer视频不会在iPhone 4上循环,iphone,ios7,titanium,appcelerator,titanium-alloy,Iphone,Ios7,Titanium,Appcelerator,Titanium Alloy,我的应用程序有一个奇怪的问题 尝试在循环中播放视频(请参阅下面的代码)。视频播放器repeatMode设置为Ti.Media.VIDEO\u REPEAT\u MODE\u ONE 在模拟器上工作,在iPhone 4s上工作,在iPad Air上工作。。。无法在iPhone 4上运行(除模拟器-7.1外,所有iPhone都运行iOS 7.1.1) 确切症状:播放一次后,视频应该从头开始重新启动,但会停止。如果控件可用,我可以按play重新开始播放,然后在播放结束后再次停止 我可以发誓它在7.1升
repeatMode
设置为Ti.Media.VIDEO\u REPEAT\u MODE\u ONE
在模拟器上工作,在iPhone 4s上工作,在iPad Air上工作。。。无法在iPhone 4上运行(除模拟器-7.1外,所有iPhone都运行iOS 7.1.1)
确切症状:播放一次后,视频应该从头开始重新启动,但会停止。如果控件可用,我可以按play重新开始播放,然后在播放结束后再次停止
我可以发誓它在7.1升级之前在iPhone4上运行,但不知怎的它停止了
任何人都可以复制这个问题?或者你有什么想法
系统信息:
- 钛SDK:用3.2.3.GA测试;3.2.2.GA;3.2.1.GA;3.2.0.GA
- 平台和版本:iOS 7.1.1(11D201)
- 设备:适用于iPhone 4s、iPad Air、模拟器在iPhone 4上失败
- 主机操作系统:OSX 10.9.2
- 钛工作室:3.2.3.201404181442
- Xcode:5.1.1(5B1008)
- 合金:1.3.1
index.js
var videoPlayer = Titanium.Media.createVideoPlayer({
autoplay : true,
fullscreen : false,
mediaControlStyle : Titanium.Media.VIDEO_CONTROL_DEFAULT,
repeatMode: Ti.Media.VIDEO_REPEAT_MODE_ONE,
scalingMode : Titanium.Media.VIDEO_SCALING_ASPECT_FIT
});
//Video is 12s long so it is easy to notice that it does not loop.
videoPlayer.url = "video/candles.mp4";
$.index.add(videoPlayer);
$.index.open();
index.xml
<Alloy>
<Window class="container">
</Window>
</Alloy>
如果您有任何建议,我将不胜感激。我已经做了一些研究,并使用了
tianium.Media.VideoPlayer
解决了这个问题。如果其他人遇到此问题,您可以在下面找到解决方案
首先,关于这个问题的一些信息
我发现一些论坛板上的开发者在ipad1st-gen上的MPMoviePlayerController上遇到了非常类似的问题。循环视频在循环中或多或少是随机冻结的。因此,我认为苹果视频播放器在某些设备上存在问题,而钛合金的实现并不需要
我的第一种方法是尝试在视频停止播放时触发的complete
事件上重播视频,而不是使用repeatMode
到目前为止还不错。第一次就成功了,耶!但是幸福是短暂的。在对事件complete
的videoPlayer.play()
进行一个小时的测试期间,视频有时会重复10-30次,然后突然冻结。有什么好处?结果视频播放器有点小毛病
正常的事件顺序如下:
- 视频结束,
更改为2playbackstate
事件被触发complete
- 我在完成后重新启动视频
更改为1,视频一直播放到结束playbackstate
- 视频到达末尾-
更改为2playbackstate
事件被触发complete
- 视频在完成后重新启动
更改为1,视频开始播放playbackstate
- 突然
变为1,视频停止,但未触发playbackstate
事件complete
playbackstate
,而不是complete,当我听到playbackstate:1
时,我会重新启动视频和tadaaa!一切正常
警告:不幸的是,并非“一切”。我正在使用自定义视频控件,因此我已失去暂停和停止功能(每次视频播放状态更改为“已停止”时,我都会强制重新启动它)。为了让它正常工作,我必须记住每次按下“暂停/停止”按钮时都要删除侦听器,然后再重新连接它
希望这能帮助别人