Вы должны быть в состоянии получить буфер аудио из вашего 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? */}
Пожалуйста, помогите мне!