0

zencoderでエンコードされたAVPlayerを使用してiOSでビデオを再生しようとしています。私が見ている問題は、プレイヤーアイテムが報告する期間が丸められている/不正確であるということです。たとえば、ビデオの長さは173.134で、プレーヤーアイテムはフラットな174.0として報告します。これにより、ロードされたパーセンテージやその他の関連するものの検出で問題が発生します。エンコードせずにビデオを使おうとすると、すべてが正しく正確に報告されます。

他の誰かがこれを見たことがありますか、または解決策がありますか?

4

2 に答える 2

1

私も同じ問題を抱えていました。現在の位置とアイテムの継続時間の違いと1秒を比較するだけです。

- (void)playing:(CMTime)time
{
   CMTime itemDuration = _player.currentItem.asset.duration;
   NSTimeInterval currentTime = CMTimeGetSeconds(time);
   NSTimeInterval duration = CMTimeGetSeconds(itemDuration);
   if (fabs(currentTime - duration) < 1)
      // This is the end.
}
于 2013-05-21T11:35:45.277 に答える
1

問題は、ソースビデオ/ゼンコーダーの問題であることが判明しました。オーディオトラックの長さがビデオとわずかに異なるため、エンコードに問題が発生しました。トラックの長さが一致するようにビデオの最後の1秒を切り取ると、問題が修正されました。

于 2013-05-22T15:10:30.927 に答える