2015-10-01 188 views
-2

我有下面顯示的代碼。它看起來很簡單。但它沒有播放任何音頻。我該如何修改這個func用AVPlayer播放pls文件?

import AVFoundation 
import MediaPlayer 


func play(){ 
    let player = AVPlayer(URL: NSURL(string: "http://www.liveatc.net/play/ltba.pls")!) 
    player.play() 
} 

回答

1

問題是player是一個局部變量。它存在兩行play()並在煙霧中消失。所以在它有機會玩之前,它已經消失了。你讓它玩,然後你立即殺死它!不大好。它想要做您的出價,但你從來沒有給它一個機會......

只要它提升的任何類,這是一個實例變量:

var player : AVPlayer! 
func play(){ 
    self.player = AVPlayer(URL: NSURL(string: "http://www.liveatc.net/play/ltba.pls")!) 
    self.player.play() 
} 
+0

您的代碼表明你不理解的Swift中變量的生命週期。您可能需要閱讀我的書:http://www.apeth.com/swiftBook/ch03.html#_variable_scope_and_lifetime – matt

+0

thanks_________ @matt –