AudioQueue音量太低

时间:2015-09-16 03:39:18

标签: ios objective-c audioqueue

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

1 个答案:

答案 0 :(得分:1)

对于仍然存在此问题的人,即使是SpeakHere示例代码也是如此。这个解决方案对我来说非常适合所有其他解决方案:

<强> // ViewController.m

#import "ViewController.h"


@interface ViewController ()
{ AVAudioSession *session; }

- (void)viewDidLoad {
    [super viewDidLoad];

    //This ensures it plays properly on speaker output
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord
                                     withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker
                                           error:nil];

}