[英]AudioQueue volume too low
我在使用 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);
对于那些仍然有这个问题的人,甚至在 SpeakHere 示例代码中。 在所有其他解决方案中,这个解决方案对我来说效果很好:
//视图控制器.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];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.