簡體   English   中英

使用AudioQueue播放PCM音頻流時音量較低

[英]Using AudioQueue to play PCM audio stream have low volume

使用AudioQueue播放PCM數據時出現問題。 使用iPhone的揚聲器時音量太低; 我什至將系統音量調到最大。 但是,使用耳機時音量很好。

我將數據插入隊列中,如下所示:

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);

您是否正在使用AVAudioSessionCategoryPlayAndRecord音頻會話類別? 如果是這樣,那么您可能正在通過接收器進行播放,這非常安靜。

這種奇怪的默認行為可以追溯到人們認為播放和錄制類別主要對VOIP應用有用的時代,更奇怪的是,VOIP應用被AppStore禁止了。

要通過普通揚聲器覆蓋播放,請嘗試將AVAudioSessionCategoryOptionDefaultToSpeaker添加到類別選項:

[session setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker error:nil];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM