私はオーディオファイルのリストを持っており、セルを押すとオーディオが再生されます。これは問題なく動作しますが、同じセルをもう一度クリックすると一時停止できません。Swift - 同じボタンをクリックして再生中のオーディオを一時停止する方法は?
テーブルビューのための私のコードは:
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
{
let a = indexPath.section;
let b = indexPath.row;
var path = NSBundle.mainBundle().pathForResource(musicArray[b], ofType: "mp3")
var error:NSError?
do{
audioPlayer = try AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: path!))
}
catch
{
print("Something bad happened")
}
if (audioPlayer.playing)
{
audioPlayer.pause();
}
else
{
audioPlayer.play();
}
}
musicArrayは、あなたが新しいAVAudioPlayer
あなたがセルを選択するたびに作成しているオーディオファイルのタイトル
私は、あなたが常にdidSelectRowAtIndexPathのたびにaudioPlayerを作成していると思います。 audioPlayerは新しいものなので、再生しているオーディオプレーヤーではなく、状態は常に再生されません。これを修正するには、静的なaudioPlayerを作成するか、audioPlayerを配列に保存する必要があります。 – nynohu