いくつかのビューがあります。そのうちの 1 つは「オプション」ビューです。このビューには、ユーザーがボタンをクリックしてバックグラウンド ミュージックを「停止」するか、クリックしてオンに戻すことができるボタンがあります。これを行う方法の一般的なアイデアがあると確信していますが、問題は、私のコードが機能していないことであり、その理由がわかりません。
これは、「オプション」クラスの実装ファイルのコードです。
- (IBAction)musicIO:(id)sender {
MenuViewController *myMusicPlayer = [[MenuViewController alloc] init];
[myMusicPlayer backgroundMusicStart];
}
メニューコード(別のクラス)でメソッドを呼び出します
これは私のメニューコードです:
-(IBAction) backgroundMusicStart{
if( i != 1){
NSURL * URL = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/backgroundMusic.wav", [[NSBundle mainBundle] resourcePath]]];
NSError *error;
backgroundPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:URL error:&error];
backgroundPlayer.numberOfLoops = -1;
[backgroundPlayer play];
i = 1;
NSLog(@"In start music");
}
else if ( i == 1 ) {
[backgroundPlayer stop];
i = 0;
NSLog(@"In stop music");
}
}
「i」はグローバルに宣言された変数です。
コードの問題: 実行され、NSLog は両方の if ステートメントに問題なく出力されることを出力します。問題は、[backgroundPlayer stop] ブラケットにある場合であり、音楽を停止しません。その理由がわかりません。