HTTPライブストリーム「playlist.m3u8」からビデオを再生するiOSアプリがあり、AVPlayerを使用して作成されたカスタムプレーヤーがあります。スクラブなどの通常のユーザーインタラクションを処理するには、ビデオの長さを取得する必要がありますが、iOS 4.3でxcode4.0を使用して次のコードを呼び出すと、CMTimeが取得され、秒に変換するとNaNが得られます-わかっていますCMTimeValue=0およびCMTimeScale=0であるため、これは何をしているのでしょうか。これにより、NaNが得られ、CMTimeFlags = 17となり、さらに奇妙になります。
これが私が使用するコードで、まったく複雑ではありません。
AVPlayerItem *pItem = mPlayer.currentItem;
AVAsset* asset = pItem.asset;
CMTime d = asset.duration;
double duration = CMTimeGetSeconds(asset.duration);
また、再生/スクラブを開始する前に、ロード中のプレイリストのステータスを監視して、準備ができていることを確認していることにも言及する必要があります。
[mPlayer addObserver:self forKeyPath:@"currentItem.status" options:0 context:VideoPlaybackViewDelegateStatusContext];
誰もが提供できるこの問題についての助けをありがとう。