問題タブ [avcapturemoviefileoutput]
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 - SwiftヘッダーのAVCaptureAudioDataOutputにaudioSettingsプロパティがありませんか?
セグメント化されたビデオを録画したいiOSアプリに取り組んでいます。私はhttps://developer.apple.com/library/content/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/00_Introduction.htmlを読んでAVCaptureVideoDataOutput
、フレームをキャプチャしてAVAssetWriter
. を次のように追加しAVCaptureVideoDataOutput
ますAVCaptureSession
。
これで問題なく動作し、キャプチャ セッションを正常に実行して、再生可能なムービー ファイルを取得できます。
今、私はオーディオをフックしたいと思っています。だから私はこのように同じことをしたい:
クレイジーなことは、にプロパティがない audioSettings
ことですAVCaptureAudioDataOutput
!!! ドキュメントには次のように記載されています: https://developer.apple.com/reference/avfoundation/avcaptureaudiodataoutput/1388527-audiosettingsしかし、Swift ヘッダーにはそのようなメンバーはありません (以下)。
一体何が起こっているのですか?XCode 8.1 を使用しています。以下のクラスの Swift ヘッダーAVCaptureAudioDataOutput
:
ios - プリセットを使用せずに iOS でビデオを録画するにはどうすればよいですか?
iOS でビデオを録画するより簡単な方法は、AVCaptureSession.sessionPreset
.
しかし、ビニング、安定化 (シネマティック、標準、またはなし)、ISO などのパラメーターを制御したいので、それはうまくいきません。
必要な形式を見つけて に割り当てますがactiveFormat
、記録を開始しようとするとエラーが発生します。
ここに私の初期化コードがあります:
setFormatWithHighestIso()
と定義されている:
最後のログ ステートメントは次を生成します。
これは確かに私が望む形式なのでsetFormatWithHighestIso()
、期待どおりに機能しています。Appleリファレンスを参照してください。
私が試した他のいくつかのこと:
- == 875704422 を != に変更して、420f の代わりに 420v を使用します。
- カメラを写真モードで起動する代わりに、ビデオ モードで起動してから、AVCapturePhotoOutput を削除して AVCaptureMovieFileOutput を追加することにより、ビデオ モードに変更します。
- AVCaptureConnection が有効になっていることを確認します。
接続がアクティブであることを確認しますが、そうではありません:
let conn = output.connection(withMediaType: AVMediaTypeVideo)! 検証 (conn.isActive)
他の も使用してみAVCaptureDeviceFormats
ましたが、動作します:
機能しないのは、ISO が最も高いフォーマットのみです。この形式の特別な点は何ですか?
AVCaptureConnection を手動で作成する必要がありますか? しかし、すでに接続があります。アクティブではないだけです。
これは、iOS 10.3.3 を実行している iPhone 7 Plus にあります。セッションを使用せずに activeFormat を設定して特定の形式でビデオを録画するにはどうすればよいですか?
activeFormat に割り当てる代わりに、sessionPreset を使用すると、ビデオが正常に記録されます。
このエラー メッセージについては他にも質問がありますが、特にプリセットを使用せずにビデオをキャプチャする必要があるため、これは間違いではありません。