On an ios device, can AVAssetReaderOutput
be told to only use software-based decoders (i.e. kAppleSoftwareAudioCodecManufacturer
rather than kAppleHardwareAudioCodecManufacturer
)?
I see that this is possible using Audio Format Services 开发者_开发百科in AudioToolbox, but I don't see how to carry this over to AVFoundation.
The reason for this is that I'd like to decode compressed audio from the itunes library while iPodMusicPlayer is playing - since hardware-assisted decoding does not support simultaneous decoding of multiple songs, my app will need to use software decoding (right?)
I'd rather not do the software decoding as a 2-step process (i.e. export compressed file to app sandbox, then open that using AudioToolbox).
Well, although I haven't found a way to specify the software decoder in AVFoundation, I ended up working around this by reading each track of the compressed song file with an AVAssetReaderTrackOutput, then passing the compressed buffers to an AudioConverterRef.
精彩评论