2017-12-06 6 views
0

저는 뮤직 목록과 음악을 재생하는 UIViewController가있는 두 개의보기 컨트롤러 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

이미 내 문제가 수정되었습니다. 뷰 컨트롤러에서 모든 플레이어 항목을 제거하고 플레이어에 대한 새 클래스를 만듭니다. 지금은 일을 원활하게합니다.

관련 문제