問題タブ [cmtime]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
995 参照

swift - カスタムの開始/終了時間で AVPlayer をループする

AVPlayer を使用してビデオを再生しています。ユーザーの入力に基づいてビデオのセクションをループできるようにしたいと思います (ビデオの再生中に、ユーザーはボタンを押してループを開始し、もう一度押して数秒後に終了することができます。開始時間に再生を開始し、現在の時間が指定された終了時間に達するとループを継続する必要があります)

プレーヤーの currentTime を取得するだけで、これらの開始/終了ループ時間を取得できます

次のように、再生が終了したら、ビデオをきれいにループして最初に戻す方法があることを私は知っています。

カスタムの startLoop 時間と endLoop 時間でこれを行う方法があるかどうか疑問に思っていましたか?

0 投票する
1 に答える
255 参照

ios - 意図したフレームレートで CVPixelBuffers を AVAssetWriterInputPixelBufferAdaptor に追加しようとしています

意図したフレームレートで CVPixelBuffers を AVAssetWriterInputPixelBufferAdaptor に追加しようとしていますが、速すぎるようで、計算がうまくいきません。これはカメラからのキャプチャではなく、変化する画像のキャプチャです。実際のビデオは、キャプチャされた経過時間よりもはるかに高速です。

1/24 秒ごとに CVPixelBuffer を追加する関数があります。そこで、前回に 1/24 秒のオフセットを追加しようとしています。

私はもう試した:

と:

と:

私は currentSampleTime に追加し、次のように追加しています。

私が考えたもう1つの解決策は、前回と現在の時間の差を取得し、それをcurrentSampleTimeに追加して正確にすることですが、その方法は不明です。

0 投票する
3 に答える
713 参照

swift - AVPlayer プレーヤーの定期的な時間オブザーバー ブロックから MPNowPlayingInfoCenter の再生時間を更新する際の問題

プレイ情報の更新に問題があります。添付のgifを見てください。レコード再生の最後に、誤った値に設定されます。

gif

MPNowPlayingInfoPropertyElapsedPlaybackTimeタイマー ブロックのキーで値を更新します。値が有効かどうかを確認し、秒に変換して値を設定します。の値MPMediaItemPropertyPlaybackDurationはイニシャライザから設定されます。

私が見つけた最も近い解決策は、playerDidFinishedPlayingfunc で再生時間を再度設定することです。この場合、進捗スライダーは最後まで進みますが、まだ少し戻っていることがわかります。

プレーヤーの実装は次のとおりです。