0

クラス A は、MPMoviePlayerController を使用してムービーをロードします。prepareToPlay を呼び出し、loadState = 3 になるまでムービーを表示したまま待機します。ビデオを再生し、最後まで再生してからもう一度再生すると、すべて正常に動作します。ただし、「完了」でビデオを終了すると、MPMovieFinishReasonUserExited 終了理由が表示され、ビデオをもう一度再生すると、コントロールをタップできますが、ビデオ画面はタップできません。コントロールが消えると、ビューが応答しないため、コントロールを元に戻す方法はありません。これは iOS 5.1 でのみ発生し、iOS 4.3 では発生しません (シミュレータと実際のデバイスの両方)。何か案は?

編集:

一つ分かった。MPMoviePlayerController のビューのサブビューでいくつかのデバッグを行ったところ、最初の再生時に次のことがわかりました。

<MPSwipableView: 0x9b671f0; frame = (0 0; 320 480); autoresize = W+H; layer = <CALayer: 0x9b67290>>

2回目にプレイした後は、次のようになります。

<MPSwipableView: 0x9b671f0; frame = (0 0; 320 480); hidden = YES; autoresize = W+H; layer = <CALayer: 0x9b67290>>

タッチを登録するビューを非表示にするのはなぜですか?? これはバグですか?

編集2:

残念ながら、上記の観察は無関係のようです。非表示を手動で NO に設定しましたが、タップに反応しません。ムービーをリロードすると問題ありません。

4

2 に答える 2

1

私は同じ問題に遭遇し、この投稿に出くわしました。動画を再生する前にファイルの URL を変更しない限り、タップしてもコントロールが再表示されないことがわかりました。この問題を回避するには、以前の MPMoviePlayerController を解放し、新しいものを割り当てて初期化するだけです。

MPMoviePlayerController のファイル URL を別のものに変更してから、ビデオに戻すこともできるかもしれませんが、私はそれをテストしていません。

于 2012-11-01T05:02:07.767 に答える
0

アプリが不要なcontrolStyle変更を行うと、この問題が発生します。セットアップ/ティアダウンイベントハンドラーを確認してください。まだアクティブになっていないcontrolStyleのみを設定するようにしてください。

if (player.controlStyle != newControlStyle)
{
    player.controlStyle = newControlStyle;
}

これは意味がないように見えますが、安心してMPMoviePlayerControllerください。この方法で行わないと、バグが発生します。

于 2012-05-19T09:20:19.720 に答える