【发布时间】:2016-06-03 04:33:35
【问题描述】:
我想使用 AVAudioPlayer 播放歌曲。但这在一段时间内是行不通的。我没有得到什么问题。 我正在使用下面的代码从本地播放 mp3 文件。
NSString *soundFile;
soundFile = [[NSBundle mainBundle] pathForResource:@"notification_sound" ofType:@"mp3"];
NSURL *fileURL = [NSURL fileURLWithPath:soundFile];
NSError *error=nil;
self.playerAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:&error];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&error];
[[AVAudioSession sharedInstance] setActive: YES error: &error];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self.playerAudio setDelegate:self];
NSLog(@"Error:%@",error);
self.playerAudio.numberOfLoops = -1;
self.playerAudio.volume=1;
if([self.playerAudio prepareToPlay])
{
NSLog(@"Prepare to play successfully");
[self.playerAudio play];
}
if([self.playerAudio prepareToPlay])这个条件永远不会满足为什么会发生这种情况请帮我解决这个问题。
我收到以下错误:
Error:Error Domain=NSOSStatusErrorDomain Code=560557684 "The operation couldn’t be completed. (OSStatus error 560557684.)"
提前致谢
【问题讨论】:
-
尝试使用您设置为
nil的所有error参数并检查这些方法的相应返回值。 -
为什么需要检查 [self.playerAudio prepareToPlay] ?你不能删除这个 if 条件吗?
-
您可以尝试将
NSError *activationError = nil;添加到self.playerAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:&activationError];和[[AVAudioSession sharedInstance] setActive: YES error:&activationError];检查错误吗? -
@AadilKeshwani:检查我更新的代码。
-
你能在 if 条件中设置断点并检查 error 是否仍然为 nil 吗?
标签: ios objective-c avaudioplayer avaudiosession