Aktualnie testuję użycie odtwarzacza AVP z adresem URL strumienia audio, używając Swift. Istnieją metody play() i pause(), ale problem polega na tym, że tylko pauza pozostaje w pamięci podręcznej w urządzeniu.Nie można zatrzymać odtwarzacza AVPlayer
Tu jest mój kodu testu:
import UIKit
import AVFoundation
class ViewController: UIViewController {
let player = AVPlayer(URL: NSURL(string: "http://streaming.radio.rtl.fr/rtl-1-48-192")!)
@IBOutlet weak var btnPlay: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func btnPress(sender: AnyObject) {
if (btnPlay.titleLabel?.text == "Play") {
initPlayer()
btnPlay.setTitle("Stop", forState: UIControlState.Normal)
} else {
stopPlayer()
btnPlay.setTitle("Play", forState: UIControlState.Normal)
}
}
func initPlayer() {
player.play()
}
func stopPlayer() {
// player.currentItem = nil // Last thing I tried, but generate an error
player.pause()
}
}
Oto problemy, gdy próbuje latków:
player = nil
: „nie można przypisać wartość typu«NilLiteralCOnvertible»do wartości typu„AVPlayer ""
player.currentItem = nil
: "Nie można przypisać do właściwości:" currentItem "to właściwość tylko do pobrania"
Próbowałem wszystkiego, nawet przez AVQueuePlayer, bez żadnych skutecznych rezultatów. (oczywiście, ponieważ mam tylko jeden przedmiot w moim przypadku).
How to zatrzymać AVPlayer lub zniszczyć jego instancję?
'gracz = zero' lub 'player.currentItem = nil'? – JAL
@JAL, 'player' jest instancją AVPlayera, więc nie mogę tego po prostu zrobić. Proszę zobaczyć funkcję 'stopPlayer()', testowałem już to – Zl3n
Jaki błąd pojawia się przy próbie ustawienia odtwarzacza na zero? Czy próbowałeś usunąć bieżący element gracza, tak jak sugerowałem? – JAL