問題タブ [replaykit]

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 投票する
2 に答える
645 参照

ios - ReplayKit stopRecording 初回入力なし

ReplayKit を使用して ARKit アプリをビデオ キャプチャしようとしています。録音ボタンがあり、押すと赤くなり、録音を開始し、もう一度押すと白くなり、録音を停止します。

しかし、stopRecording メソッドは最初は機能しませんでした。

もしrecorder.isAvailable {recorder.delegate =自己

最初に押すと、録音が​​開始されたことがわかります。その後、もう一度押すと、recorder.isRecording が入力されていることがわかりますが、recorder.stopRecording 内のブロックが機能しません。もう一度押して録音を開始し、recorder.stopRecording ブロックに入る前にもう一度停止する必要があります。

何か案が?助けていただければ幸いです。

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

ios - ReplayKit を使用してストリーミング中に CMSampleBuffer からビデオを保存する

アプリのコンテンツを RTMP サーバーにストリーミングし、RPBroadcastSampleHandler を使用しています。

方法の一つは、

そして、captureOutput メソッドは

このサンプル バッファーにはオーディオ/ビデオ データが含まれているため、ストリーミング中に AVKit を使用してローカルに保存できると考えました。だから私がやっていることは、ストリームの開始時にアセットライターを作成することです:

そして、ストリームの最後に書き込みを保存して終了します。

私が抱えている問題は、finishWriting 完了コードに到達しないことです。ライターは「書き込み」状態のままなので、ビデオ ファイルは保存されません。

「finishWriting」行を削除して完了コードを実行したままにしておくと、ファイルは保存されますが、適切に終了せず、表示しようとすると、おそらくメタデータが欠落しているため再生できません。

これを行う他の方法はありますか?録画を保存するために AVKit を使用して実際にキャプチャを開始したくありません。CPU を使いすぎており、RPBroadcastSampleHandler の CMSampleBuffer には既にビデオ データが含まれているためですが、AVKit を使用するのは間違っているのでしょうか?

何を変更すればよいですか?その CMSampleBuffer からビデオを保存するにはどうすればよいですか?