Вы должны быть в состоянии получить буфер аудио из вашего sampleBuffRef, а затем выполнить итерацию по этим значениям для построения вашей формы волны:

аю песню из библиотеки iPod с помощью assetUrl (в коде она называется audioUrl). Я могу воспроизвести ее многими способами, я могу ее обрезать, я могу сделать некоторую прецессию с этим, но ... Я действительно не понимаю, что я собираюсь делать с этим CMSampleBufferRef для получения данных для рисования формы волны! Мне нужна информация о пиковых значениях, как я могу получить это (может быть, другим) способом?

    AVAssetTrack * songTrack = [audioUrl.tracks objectAtIndex:0];
    AVAssetReaderTrackOutput * output = [[AVAssetReaderTrackOutput alloc] initWithTrack:songTrack outputSettings:nil];
    [reader addOutput:output];
    [output release];

    NSMutableData * fullSongData = [[NSMutableData alloc] init];
    [reader startReading];

    while (reader.status == AVAssetReaderStatusReading){

        AVAssetReaderTrackOutput * trackOutput = 
        (AVAssetReaderTrackOutput *)[reader.outputs objectAtIndex:0];

        CMSampleBufferRef sampleBufferRef = [trackOutput copyNextSampleBuffer];

        if (sampleBufferRef){/* what I gonna do with this? */}

Пожалуйста, помогите мне!