gpt4 book ai didi

iphone - 通过扬声器的 AVAudioPlayer

转载 作者:行者123 更新时间:2023-12-03 18:50:26 28 4
gpt4 key购买 nike

我得到了以下代码:

- (id)init {
if (self = [super init]) {
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);

UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);

[[AVAudioSession sharedInstance] setDelegate:self];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];
}
return self;
}

但不知怎的,声音不想从扬声器中发出,有人能看到我做错了什么吗?

我用于播放的代码是:

AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFilePathURL error:nil];
[player prepareToPlay];
[player setVolume:1.0];
[player play];

最佳答案

对如何设置它很挑剔......

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute, sizeof(audioRouteOverride), &audioRouteOverride);

使用AVAudioSessionCategoryPlayAndRecord非常重要,否则路由将无法到达扬声器。设置 Audio Session 的覆盖路由后,您可以使用 AVAudioPlayer 实例并向扬声器发送一些输出。

希望这对其他人有用,就像对我一样。有关于此的文档很分散,但 Skype 应用程序证明这是可能的。坚持下去,我的 friend 们! :)

这里有一些 Apple 文档:http://developer.apple.com/library/ios/#documentation/AudioToolbox/Reference/AudioSessionServicesReference/Reference/reference.html

在页面上搜索kAudioSessionProperty_OverrideAudioRoute

关于iphone - 通过扬声器的 AVAudioPlayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2660836/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com