問題タブ [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.
ios - ReplayKit stopRecording 初回入力なし
ReplayKit を使用して ARKit アプリをビデオ キャプチャしようとしています。録音ボタンがあり、押すと赤くなり、録音を開始し、もう一度押すと白くなり、録音を停止します。
しかし、stopRecording メソッドは最初は機能しませんでした。
もしrecorder.isAvailable {recorder.delegate =自己
最初に押すと、録音が開始されたことがわかります。その後、もう一度押すと、recorder.isRecording が入力されていることがわかりますが、recorder.stopRecording 内のブロックが機能しません。もう一度押して録音を開始し、recorder.stopRecording ブロックに入る前にもう一度停止する必要があります。
何か案が?助けていただければ幸いです。
ios - ReplayKit を使用してストリーミング中に CMSampleBuffer からビデオを保存する
アプリのコンテンツを RTMP サーバーにストリーミングし、RPBroadcastSampleHandler を使用しています。
方法の一つは、
そして、captureOutput メソッドは
このサンプル バッファーにはオーディオ/ビデオ データが含まれているため、ストリーミング中に AVKit を使用してローカルに保存できると考えました。だから私がやっていることは、ストリームの開始時にアセットライターを作成することです:
そして、ストリームの最後に書き込みを保存して終了します。
私が抱えている問題は、finishWriting 完了コードに到達しないことです。ライターは「書き込み」状態のままなので、ビデオ ファイルは保存されません。
「finishWriting」行を削除して完了コードを実行したままにしておくと、ファイルは保存されますが、適切に終了せず、表示しようとすると、おそらくメタデータが欠落しているため再生できません。
これを行う他の方法はありますか?録画を保存するために AVKit を使用して実際にキャプチャを開始したくありません。CPU を使いすぎており、RPBroadcastSampleHandler の CMSampleBuffer には既にビデオ データが含まれているためですが、AVKit を使用するのは間違っているのでしょうか?
何を変更すればよいですか?その CMSampleBuffer からビデオを保存するにはどうすればよいですか?