我正在使用Unity中的Handheld.PlayFullScreenMovie在iOS和安卓设备上播放电影。
实际上,它在安卓上运行得很好,但在iOS中,特别是在iPhone 5上,当视频第一次播放时,设备就会停止寻找输入。
这意味着用户第一次播放视频时,视频上的UI控件不起作用。我不能暂停,不能调高或调低音量,甚至不能停止视频。如果我想停止视频,我需要退出应用程序。
这发生在我第一次重现视频的时候。在此之后,我可以再次播放该视频,甚至是新的视频,UI再次工作,我可以使用音量按钮或使用UI按钮退出视频。
我首先想到的是这款设备的iOS版本,但它有最新的iOS 8.3;在其他iOS设备上,即使没有最新的iOS版本,我也不会有任何问题。这似乎只是一个iPhone 5的问题。
如果有人知道发生了什么事,我很高兴听到你的消息。
下面是我的代码:
#if UNITY_IOS
Handheld.PlayFullScreenMovie (videoURL,
Color.black,
FullScreenMovieControlMode.Full,
FullScreenMovieScalingMode.AspectFit);
#endif
#if UNITY_ANDROID
Handheld.PlayFullScreenMovie (videoURL,
Color.black,
FullScreenMovieControlMode.Minimal/*,
FullScreenMovieScalingMode.AspectFit*/);
#endif发布于 2015-07-04 04:37:32
好的。我只是弄清楚刚刚发生了什么。
它看起来就像我在将屏幕方向切换为LandscapeLeft之前调用Handheld.PlayFullScreenMovie,并且在相同的函数中。由于某些原因,这种交换动作是在我第一次播放视频时无法在Iphone5中捕捉到触摸的。
奇怪的是,如果我用一个按钮将ScreenOrientation切换到Landscape,然后用另一个按钮调用Handheld.PlayFullScreenMovie,一切都会正常工作。
我的解决方案是将Handheld.PlayFullScreenMovie放在一个波纹中,并在我的函数的末尾将屏幕方向切换到景观,调用我的函数来播放视频。
Prety很像这样:
IEnumerator StartUnityVideo()
{
yield return new WaitForSeconds(2);
Debug.Log ("StartUnityVideo");
Handheld.PlayFullScreenMovie (videoURL,
InterfaceColor,
FullScreenMovieControlMode.Full,
FullScreenMovieScalingMode.AspectFit);
Debug.Log ("FIN Iniciando video");
}和我的交换方向的函数
public void SwapOrientation()
{
Screen.orientation = ScreenOrientation.LandscapeLeft;
StartCoroutine ("StartUnityVideo");
}仅此而已。它需要使用一些次要的UI屏幕,以确保它看起来不会因为屏幕方向交换而看起来很奇怪,但它可以工作。
https://stackoverflow.com/questions/31127747
复制相似问题