Search code examples
iphoneiosios4core-audio

Finding the number of Channels from an AVAsset


I am loading Audio assets via AVAssets. I want to figure out how many channels (mono or stereo basically) are in the asset. What is the best way to do this?


Solution

  • This appears to be what I am looking for.

    AVAssetTrack* songTrack = [mAssetToLoad.tracks objectAtIndex:0];
    NSArray* formatDesc = songTrack.formatDescriptions;
    for(unsigned int i = 0; i < [formatDesc count]; ++i) {
        CMAudioFormatDescriptionRef item = (CMAudioFormatDescriptionRef)[formatDesc objectAtIndex:i];
        const AudioStreamBasicDescription* bobTheDesc = CMAudioFormatDescriptionGetStreamBasicDescription (item);
        if(bobTheDesc && bobTheDesc->mChannelsPerFrame == 1) {
            mIsMono = true;
        }
    }