2017-12-06 15 views
0

私は音楽を再生するUIViewControllerとMusicsのリストを持っている2つのView Controller、TableViewControllerを持っています。音楽は、ビューがロードされると自動的に再生され、一時停止ボタンが押されると一時停止します。AVPlayerは前のビューに戻るときに再生を停止しません

しかし、別の音楽を選択するために前のTableViewControllerに戻ると、音楽は引き続き再生されます。私が別の音楽を選んだら、一緒に演奏しています。

私のコードは:

var audioplayer = AVPlayer() 

override func viewDidLoad() { 
     super.viewDidLoad() 

    play() 
} 

func play(){ 

    var songUrl = songList[selectedItem].url 

    audioplayer = AVPlayer(url: songUrl!) 

    audioplayer.play() 

} 

答えて

0

あなたは.pause()を使用しようとしたことがありますか?例:

var audioplayer: AVPlayer? = AVPlayer() 

override func viewDidLoad() { 
    super.viewDidLoad() 

    play() 
} 

func play(){ 

    var songUrl = songList[selectedItem].url 

    audioplayer = AVPlayer(url: songUrl!) 

    audioplayer.play() 

} 

override func viewDidDisappear(_ animated: Bool) { 
    super.viewDidDisappear(animated) 
    audioplayer.pause() 
    audioplayer = nil 
} 
+0

私はこのようにviewDidDisappearでコードを書くと、私はビューのプレーヤーを停止し、私はそれを望んでいません閉じる。 – John

+1

それからプロジェクトを再構成する必要があるようです。この最後のコメントが元の質問と矛盾しているように、私はあなたが何をしたいのか分かりません。あなたはもっと詳細を与える必要があります。 –

0

私はすでに問題を修正しました。私は、View Controller内のすべてのプレイヤーアイテムを削除し、プレーヤー用の新しいクラスを作成します。今、スムーズに仕事をしています。

関連する問題