AvassetWriterInput出力設定は、有効なNSDATAをレンダリングしません
-
29-10-2019 - |
質問
AvassetWriterInputを使用して、ユーザーからMP3ファイルを取得し、電子メールで送信しています(DRM無料のみ)。 PCMを使用するときに動作するプロセスを取得しましたが、MP3、M4A、またはCAFを試してみると、機能しないファイルを取得するか、空のデータを取得します。出力設定が原因だと思います。使用されている出力設定は、以下のデータを描画しません。私はそれをすべて変えることにオープンです。ありがとう!
NSDictionary *outputSettings = [NSDictionary dictionaryWithObjectsAndKeys:
[ NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey,
[ NSNumber numberWithInt: 1 ], AVNumberOfChannelsKey,
[ NSNumber numberWithFloat: 44100.0 ], AVSampleRateKey,
[ NSData dataWithBytes: &channelLayout length: sizeof( AudioChannelLayout ) ], AVChannelLayoutKey,
[ NSNumber numberWithInt: 64000 ], AVEncoderBitRateKey,
nil];
解決
AppleはAPIを提供しません 書き込み MP3ファイルは、MP3が単なるヘッダーレスパケットであり、単にRAWパケットを書き出すだけで正常に機能するためです。
M4A/CAFコンテナのAACデータを書き出すことに関しては、私は確信していませんが、AvenCoderbitrateKeyは何もエンコードしていないので、間違いなくそこにいるべきではありません - あなたはただデータを渡すだけです。それでは、AvassetWriterを忘れて、PassthroughプリセットでAvassetExportsessionを使用してみませんか?
所属していません StackOverflow