0
使用AudioQueue播放PCM数据时出现问题。使用iPhone扬声器时音量较低;我甚至将系统音量调到最大。但是,当我使用耳机时,音量很好。使用AudioQueue播放PCM音频流的音量很低
我插入的数据到队列是这样的:
memcpy(mBuffers[mIndex]->mAudioData, pcmData, mBufferByteSize);
mBuffers[mIndex]->mAudioDataByteSize = mBufferByteSize;
mBuffers[mIndex]->mPacketDescriptionCount = mBufferByteSize/2;
OSStatus status = AudioQueueEnqueueBuffer(mQueue, mBuffers[mIndex], 0, NULL);
NSLog(@"fill audio queue buffer[%d]",mIndex);
if(mIndex == kNumberBuffers - 1) {
isStartPlay = YES;
mIndex = 0;
AudioQueueSetParameter(mQueue, kAudioQueueParam_Volume, 1.0);
status = AudioQueueStart(mQueue, NULL);
}else {
mIndex++;
}
我已经这样设置音量:
AudioQueueSetParameter(mQueue, kAudioQueueParam_Volume, 1.0);
谢谢你的建议。但我没有使用任何音频会话类别,只是使用音频队列录制和播放PCM音频流。所以我很困惑,为什么当我使用扬声器播放时音量很低,在使用耳机时不会发生这种情况。您有什么想法吗? – jojoT
也许你正在得到一个默认的记录/播放和记录类别?你可以尝试上面的代码或使用'AVAudioSessionCategoryPlayback'进行播放吗? –
是的,我尝试'[会议setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker错误:无];'和它的工作。谢谢。 – jojoT