我正在尝试暂停AVAudioPlayer
如果它正在播放。当我调试我的代码并检查AVAudioPlayer
时,我看到它被分配了。当我尝试访问其上的方法/属性(即myAudioPlayer isPlaying
)时,出现EXC_BAD_ACCESS
错误。如果AVAudioPlayer
没有加载声音,则会发生这种情况。有没有办法可以检查它是否加载了声音?我尝试访问myAudioPlayer.data
,但我仍然遇到同样的错误。
答案 0 :(得分:5)
对我来说,这是因为我没有打电话给指定的初始者之一。我使用AVAudioPlayer()
而不是public init(contentsOfURL url: NSURL) throws
和public init(data: NSData) throws
答案 1 :(得分:5)
从iOS 13开始,请确保在使用AVAudioPlayer(contentsOf:URL(...))进行赋值之前,先删除AVAudioPlayer上的初始化
即更改
var audioPlayer = AudioPlayer()
至var audioPlayer: AVAudioPlayer!
答案 2 :(得分:3)
我猜你必须使用prepareToPlay方法来查找它是否已加载。
答案 3 :(得分:0)
首先你需要添加AVFoundation Framework。然后,在.h文件中导入AVFounadtion框架。
·H:
AVAudioPlayer *audioPlayer;
的.m:
NSURL *url1 = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/audio1.mp3", [[NSBundle mainBundle] resourcePath]]];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url1 error:&error];
//audioPlayer.numberOfLoops = 0;
[audioPlayer play];
试试这段代码可能对你有帮助..