18

AVAudioPlayer を使用して、現在再生中のプレーヤーをリセットして再度再生したい場合に問題が発生しています。

私は運がないので次のことを試します:

サウンドは1回再生されますが、2回目にボタンを選択するとサウンドが停止し、3回目にサウンドが再び開始されます。

//Stop the player and restart it
if (player.playing) {
    NSLog(@"Reset sound: %@", selectedSound);
    [player stop];
    [player play];
} else {
    NSLog(@"playSound: %@", selectedSound);
    [player play];      
}

また、プレーヤーをリセットすることを示す player.currentTime = 0 を使用してみましたが、機能しませんでした。currentTime = 0 をリセットしてから、再生を呼び出しても機能しませんでした。

//Stop the player and restart it
if (player.playing) {
    NSLog(@"Reset sound: %@", selectedSound);
    player.currentTime = 0;
    [player play];
} else {
    NSLog(@"playSound: %@", selectedSound);
    [player play];      
}
4

3 に答える 3

40

あなたの状況では、私は次のことを試します

//Pause the player and restart it
if (player.playing) {
    NSLog(@"Reset sound: %@", selectedSound);
    [player pause];
}

player.currentTime = 0;
[player play];

すぐにもう一度サウンドを再生する場合は、停止するのではなく一時停止することをお勧めします。stop の呼び出し 「再生を停止し、再生に必要な設定を元に戻します。」

于 2009-07-21T23:39:07.910 に答える
2

迅速な例:

player.currentTime = 0.0;
于 2016-07-28T01:43:18.400 に答える