我使用AVAudioPlayer在我的应用上播放声音。我可以通过调用[audioPlayer stop];
中的方法来停止声音。但是当我从另一个ViewController调用该方法时,声音没有停止。我已经搜索过,但我无法得到正确的答案。我想要的是停止来自另一个ViewController的声音。有人能帮我吗?我是iOS的新手。
我用它来添加我的声音文件:
//Declare the audio file location and settup the player
NSURL *audioFileLocationURL = [[NSBundle mainBundle] URLForResource:@"alarm" withExtension:@"wav"];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioFileLocationURL error:&error];
[audioPlayer setNumberOfLoops:-1];
if (error) {
NSLog(@"%@", [error localizedDescription]);
[[self volumeControl] setEnabled:NO];
[[self playPauseButton] setEnabled:NO];
[[self alertLabel] setText:@"Unable to load file"];
[[self alertLabel] setHidden:NO];
} else {
[[self alertLabel] setText:[NSString stringWithFormat:@"%@ has loaded", @"alarm.wav"]];
[[self alertLabel] setHidden:NO];
//Make sure the system follows our playback status
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];
//Load the audio into memory
[audioPlayer prepareToPlay];}
使用[audioPlayer play];
启动声音并停止使用[audioPlayer stop];
。当我在同一个ViewController上但当我更改ViewController [myViewController.audioPlayer stop];
时,它工作正常。我正在使用Storyboard。
答案 0 :(得分:0)
您可以在当前类中添加stop方法,并在按钮单击时调用其他类中的方法。请在以下链接中找到代码段
再添加一个链接Why does the AVAudioPlayer stop method not work when switching views
答案 1 :(得分:0)
将AVAudioPlayer
的{{1}}实例声明为全局。
.h file
您可以从其他控制器停止此操作
@property (nonatomic, retain) AVAudioPlayer *theAudio;
这对我有用..希望它也可以帮到你..