我的iOS应用程序中的AudioServicesPlaySystemSound存在问题。
我有一个定义播放系统声音的方法。当我从viewDidLoad调用该方法时,我可以听到声音播放,但是当我从按钮处理程序调用它时,我听不到声音播放。
以下是我的视图控制器中的代码:
SystemSoundID startSound = 0;
-(void)playStartSound
{
AudioServicesPlaySystemSound(startSound);
}
-(void)viewDidLoad
{
NSURL *urlStart = [[NSBundle mainBundle] URLForResource:@"Beep" withExtension:@"wav"];
AudioServicesCreateSystemSoundID((CFURLRef)urlStart, &startSound);
[self playStartSound];
[super viewDidLoad];
}
- (IBAction)start:(id)sender
{
[self playStartSound];
}
IBAction方法与按钮相关联。当我选择按钮时,会调用playStartSound方法,但听不到声音。
在调用dealloc方法之前,不会使用AudioServicesDisposeSystemSoundID处理系统声音。
我试过在playStartSound中调用AudioServicesCreateSystemSoundID,但它没有任何区别。
该应用程序还使用AV基础,媒体播放器,核心媒体,核心视频和核心位置。我想知道其中一个是否会干扰AudioToolbox?
更新:我只是将一个简单的应用程序放在一起,它只包含上面的代码和一个按钮,当我选择按钮时声音就会正常播放。
然后我从控制器中删除了所有视频捕获代码,现在音频播放正常。
答案 0 :(得分:4)
这不起作用,因为我在我的应用程序中有一个活跃的视频捕获会话。
当存在活动视频捕获会话时,AudioServicesPlaySystemSound将无法播放。
答案 1 :(得分:0)
NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"7777" ofType:@"mp3"];
SystemSoundID soundID;
AudioServicesCreateSystemSoundID((__bridge CFURLRef)([NSURL fileURLWithPath: soundPath]), &soundID);
AudioServicesPlaySystemSound (soundID);
嘿试试它会播放