Handheld.PlayFullScreenMovie输入麻烦

时间:2015-06-30 00:38:17

标签: ios unity3d

我在Unity中使用Handheld.PlayFullScreenMovie在iOS和Android设备上播放电影。

实际上它在Android中运行良好,但在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

1 个答案:

答案 0 :(得分:0)

确定。我只是想知道刚刚发生了什么。

就像我在将屏幕方向交换为LandscapeLeft并在同一功能内部之前调用Handheld.PlayFullScreenMovie一样。出于某种原因,这种交换运动源于我在播放视频的时候在Iphone5中触摸触摸的不可能性。

奇怪的是,如果我用一个按钮将ScreenOrientation切换到Landscape,之后我用另一个按钮调用Handheld.PlayFullScreenMovie,一切都很好。

我的解决方案是将Handheld.PlayFullScreenMovie放入一个corrutine中,并在我的函数结束时将Screen orientation更改为Landscape调用我的函数来播放视频。

非常喜欢这样:

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");
}

这就是全部。它需要使用一些未成年人用户界面屏幕,以确保它看起来并不奇怪,因为屏幕方向交换,但它的工作原理。