В настоящее время я тестирую использование AVPlayer со звуковым потоком URL, используя Swift. Существуют play() и pause() методы, но проблема в том, что, только приостанавливаясь, поток остается кэшированным в устройстве.
Вот мой тестовый код:
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()
}
}
Вот проблемы при попытке чего-то:
player = nil
: "Невозможно присвоить значение типа" NilLiteralCOnvertible "значению типа" AVPlayer "
player.currentItem = nil
: "Невозможно назначить свойство:" currentItem "- свойство get-only"
Я пробовал все, даже через AVQueuePlayer без какого-либо эффективного результата. (очевидно, поскольку в моем случае у меня есть только один элемент).
Как остановить AVPlayer или уничтожить его экземпляр?