大家好,希望大家都能帮我解决这个问题。
我想要做的是当用户离开视图B观看A,播放音频时,当用户离开视图A观看B时,音频停止。
所以当用户离开视图B(从superview中删除viewB)回到视图A的主视图时,方法playIT& hahaPlay将被调用。当用户将视图A留给视图B(视图A添加子视图B)时,将调用stopPlaying方法。但这是我的问题,即使调用stopPlaying方法,音频也不会停止。我意识到警报已显示,但出于某种原因声明> [audioPlayer stop];
无效。
我已经在头文件中定义了音频播放器,只是fyi。
以下所有方法都在viewcontroller
中,名为soundView。
抱歉,我可能会以错误的方式做所有事情,也许你们中的一些人可以启发我并纠正我的错误?
-(void)playIT{
filePath = [[NSBundle mainBundle] pathForResource:@"6431"
ofType:@"aiff"];
fileURL = [[NSURL alloc] initFileURLWithPath:filePath];
audioPlayer = [[AVAudioPlayer alloc]
initWithContentsOfURL:fileURL error:nil];
}
-(void)hahaPlay{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"playing" message:@" playing" delegate:nil cancelButtonTitle:@"Yep, I did." otherButtonTitles:nil];
[alert show];
[alert release];
[audioPlayer prepareToPlay];
if(![audioPlayer isPlaying]){
[audioPlayer play];
}
- (void)stopPlaying{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Stop playing" message:@"Stop playing" delegate:nil cancelButtonTitle:@"Yep, I did." otherButtonTitles:nil];
[alert show];
[alert release];
[audioPlayer stop];
}
答案 0 :(得分:0)
也许您错误地丢失了某个地方的参考,尝试在停止呼叫附近设置断点,并在audioPlayer
为audioPlayer
的情况下检查nil
。只是说因为通常这是我遇到大部分这类问题的原因......
还会做以下工作吗?
[audioPlayer pause]
audioPlayer.currentTime = 0;