@nkChehov

Воспроизвести звук, Objective C?

Здравствуйте.

У нас есть void массив mdata на 2048 байт (надеюсь знакомая ситуация), и вот этот массив нужно воспроизвести.

Пробуем AVAudioPlayer, документация пытается убедить нас, что инициализировать этот объект можно с помощью NSData, но всегда выходит nill.

https://developer.apple.com/library/ios/documentat...

Вот наш бравый пример:
AudioBufferList audioBufferList;
        NSMutableData *data = [[NSMutableData alloc] init];
        CMBlockBufferRef blockBuffer;
        CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer(sampleBuffer, NULL, &audioBufferList, sizeof(audioBufferList), NULL, NULL, kCMSampleBufferFlag_AudioBufferList_Assure16ByteAlignment, &blockBuffer);
        
        for( int y=0; y< audioBufferList.mNumberBuffers; y++ ){
            
            AudioBuffer audioBuffer = audioBufferList.mBuffers[y];
            //Byte *frame = (Byte*)audioBuffer.mData;
            
            [data appendBytes:audioBuffer.mData length:audioBuffer.mDataByteSize];
            
        }
        
        CFRelease(blockBuffer);
        
        NSError *err;
        AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithData:data error:&err];
        NSLog(@"%@", err);
        [player play];


Спасибо!
  • Вопрос задан
  • 274 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы