iPhone:如何在 iPod 声音上播放声音?
Posted
技术标签:
【中文标题】iPhone:如何在 iPod 声音上播放声音?【英文标题】:iPhone: How to play a sound on top of the iPod sound? 【发布时间】:2011-05-29 12:51:34 【问题描述】:我正在尝试在 iPod 音乐上播放声音,但是当我进入我的应用程序时,iPod 声音会自动静音。我试过了:
UInt32 sessionCategory = kAudiosessionCategory_AmbientSound;
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory,
sizeof (sessionCategory),
&sessionCategory
);
但可能是因为我使用 RemoteIO/Audio Units 来播放我的声音,所以这没有效果(不确定这是否是原因,但它肯定什么都没做......声音仍然停止)
我错过了什么?
【问题讨论】:
【参考方案1】:由于某种原因,问题中的代码不起作用,但这是有效的:
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient error: nil];
【讨论】:
【参考方案2】:AudioSessionSetProperty 返回错误,你在检查吗?
您可能忘记调用 AudioSessionInitialize,您不需要对 AVFoundation 包装器执行此操作。
【讨论】:
确实,我没有打电话给AudioSessionInitialize
,但是,奇怪的是我检查了它没有返回错误,会选择你的答案,因为它解释了为什么上面的代码不起作用【参考方案3】:
@property (nonatomic, strong) AVAudioPlayer * avAudioPlayer;
NSString *zeroAudioPath = [[NSBundle mainBundle] pathForResource:@"customSound" ofType:@"wav"];
NSURL *file = [[NSURL alloc] initFileURLWithPath:zeroAudioPath];
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:file
error:nil];
self.avAudioPlayer = audioPlayer;
self.avAudioPlayer.delegate = self;
[_zeroAudioPlayer prepareToPlay];
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback error:&error];
[_zeroAudioPlayer play];
希望对你有帮助。
【讨论】:
以上是关于iPhone:如何在 iPod 声音上播放声音?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用来自 iPod 库的声音更改 iPhone 的通知声音