gpt4 book ai didi

iphone - 我正在播放在后台模式下触发的音乐 - 但它会在几秒钟后停止,为什么?

转载 作者:行者123 更新时间:2023-12-03 02:23:27 27 4
gpt4 key购买 nike

我正在播放在后台触发的声音,但听起来不到一秒钟。
我试过 wav 和 m4a 文件。但我正在疯狂地寻找问题的答案。
它甚至没有完成一个循环..你知道它为什么会发生吗?有人可以帮帮我吗?

这是播放代码:

NSString *audioFilePath = [[NSBundle mainBundle] pathForResource:[userProp valueForKey:@"romba"] ofType:@"m4a"];
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:audioFilePath] error:NULL];
audioPlayer.delegate=self;
audioPlayer.numberOfLoops = -1;
[audioPlayer play];

我试图调用这个委托(delegate)函数来检查问题但没有我是我的控制台
-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{
NSLog(@"finish playing");
}

-(void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError *)error{
NSLog(@"stops - decoder error");
NSLog(@"error: %@",[error description]);
}
-(void)audioPlayerEndInterruption:(AVAudioPlayer *)player{
NSLog(@"stops - decoder error");
}

这就是我添加 AVAudoioPlayer 的方式 -
-(void)syncAlarmProperties{
NSUserDefaults *userProp = [NSUserDefaults standardUserDefaults];

NSString *audioFilePath = [[NSBundle mainBundle] pathForResource:[userProp valueForKey:@"alertProp"] ofType:@"wav"];
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:audioFilePath] error:NULL];

audioPlayer.delegate=self;
audioPlayer.numberOfLoops=-1;

}

这是播放功能:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
{
[audioPlayer play];
}

最佳答案

如果您使用自动引用计数,那么 audioPlayer可能正在发送 -release紧跟在 -play 之后的消息信息。

在这种情况下,解决方案是添加 AVAudioPlayer 的实例作为 @property在你的类(class)上,以确保球员不会从你下面被释放出来。

关于iphone - 我正在播放在后台模式下触发的音乐 - 但它会在几秒钟后停止,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8719771/

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