1

この答えを探しましたが、見つかりませんでした。

iPhone アプリの起動時にバックグラウンドで再生される音楽があります。しかし、ユーザーが音楽をミュートできるようにボタンが必要です。アプリ内には効果音もあるので、デバイスの側面にあるミュート ボタンをスライドしても効果はありません。

これは、AVAudioPlayer の現在のコードです。

    - (void)viewDidLoad{
#if TARGET_IPHONE_SIMULATOR
    //here code for use when execute in simulator
#else
    //in real iphone
    NSString *path = [[NSBundle mainBundle] pathForResource:@"FUNKYMUSIC" ofType:@"mp3"];  
    AVAudioPlayer *TheAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];  
    TheAudio.delegate = self;  
    [TheAudio play];      
    TheAudio.numberOfLoops = -1;
#endif
}

簡単なボタンで音楽を停止して再開するために必要なコードを誰かが教えてくれますか?

ありがとうございます。

4

2 に答える 2

0

回答にコードを表示する方が簡単です。

-(IBAction) playerPlay:(id)sender {

    if([player isPlaying]) {
        [player stop]; 
    }
    if(![player isPlaying]) {
        [player play]; 
    }

}

説明します:[player isPlaying]メソッドは、オーディオが再生されているかどうかを確認します。オーディオが再生中の場合、括弧内のすべてが実行されます(この状況では、オーディオの再生が停止します)。

「!」のため ![player isPlaying]では、メソッドは通常とは逆になります。これは、プレーヤーが再生されていない場合、括弧内のすべてが実行されることを意味します(この状況では、オーディオの再生が開始されます)。

これらはすべてIBActionに含まれているため、ボタンがクリックされたときに実行されます。

今後の参考のために、Objective-CのIfステートメントの正しい形式は次のとおりです。

if(thing to check for) {
things that happen if the thing that is check for is correct;
}

「then」という言葉が実際に使用されることはありませんが、それは同じことであり、括弧内にあるものは何でも同じです。お役に立てれば!

于 2011-12-28T16:43:48.373 に答える
0

次のコードを viewcontroller.h ファイルに追加します。

-(IBAction) btnStop:(id)sender;

次のコードを viewcontroller.m ファイルに挿入します。

-(IBAction) btnStop:(id)sender { 
    [TheAudio stop];
    //Whatever else you want to do when the audio is stopped
}

Interface Builder で、ボタンをこのアクションに接続して、クリックするとこのアクションが呼び出されるようにします。これで音楽が止まるはずです。

于 2011-12-28T14:00:58.040 に答える