0

私はこのような映画プレーヤーを作ります...

    MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:url];
    player.view.frame = myView.bounds;
    player.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    [player prepareToPlay];

    [myView addSubview:player.view];
    self.mp = player;

URLはm3u8Webストリームを指しています。それはうまく再生されます。それではこのような画像をお願いします...

NSTimeInterval currentInterval = self.mp.currentPlaybackTime;
UIImage *image = [self.mp thumbnailImageAtTime:currentInterval timeOption:MPMovieTimeOptionExact];

currentIntervalを1秒バックアップしてみました。両方の時間オプション(正確とキーフレーム)を試しましたが、画像は常にnilです。なぜですか?ありがとう。

4

1 に答える 1

6

私の理解では、MPMoviePlayerControllerサムネイルメソッドはHTTPライブストリーミング(HLS)ストリームでは機能しません。ファイルのみ。残念ながら、私はそれについての信頼できる参考文献を見つけることができませんが、ここ数週間のどこかでそれを見たり読んだりしました。私自身も同じ経験をしました。

とはいえ、を使用してHLSストリームのサムネイルを生成できる可能性がありますAVAssetImageGenerator

編集:

AVAssetImageGenerator通常のHTTPファイルと、HLS経由でアクセスされた同じファイルに対してテストしました。HTTPのものからサムネイルを生成することはできましたが、HLSのものの場合AVAssetImageGenerator、次のエラーが返されました。

NSLocalizedFailureReason=このメディアでは操作はサポートされていません。

したがって、要約すると、HTTPLiveStreamingはサムネイルの作成をサポートしていないように見えます。状況が許せば、サーバー上でサムネイルを生成し、それらをWebサービスとして利用できるようにしてから、クライアントのサーバーにサムネイルを要求できる場合があります。

于 2012-07-16T16:52:43.383 に答える