Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
394 views
in Technique[技术] by (71.8m points)

ios - AudioQueue volume too low

I am having a problem when using AudioQueue to play PCM data. The volume is low when using the iPhone's speaker; I have even turned the system volume up to maximum. However, the volume is fine when I am using the earphones.

I inserted the data into the queue like this:

    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++;
    }

I have set the volume like this:

    AudioQueueSetParameter(mQueue, kAudioQueueParam_Volume, 1.0);
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

For those still having this issue which is even on SpeakHere sample code. This solution worked well for me out of all the other ones :

//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];

}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...