Tôi hiện đang thử nghiệm sử dụng AVPlayer với url phát âm thanh, sử dụng Swift. Có các phương thức play() và pause() nhưng vấn đề là, tạm dừng chỉ, luồng vẫn được lưu trong bộ nhớ cache trong thiết bị.Không thể dừng AVPlayer
Đây là mã thử nghiệm của tôi:
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()
}
}
Dưới đây là những vấn đề khi cố gắng somethings:
player = nil
: "Không thể gán một giá trị của loại 'NilLiteralCOnvertible' đến một giá trị của loại 'AVPlayer '"
player.currentItem = nil
:" Không thể chỉ định cho thuộc tính:' currentItem 'là thuộc tính chỉ nhận "
Tôi đã thử mọi thứ, ngay cả thông qua AVQueuePlayer mà không có bất kỳ kết quả hiệu quả nào. (hiển nhiên, vì tôi chỉ có một món trong trường hợp của tôi).
Cách dừng AVPlayer hoặc phá hủy dụ của mình?
'player = nil' hoặc 'player.currentItem = nil'? – JAL
@JAL, 'trình phát' là một phiên bản của AVPlayer, vì vậy tôi không thể làm điều đó. Xin vui lòng xem chức năng 'stopPlayer()', tôi đã kiểm tra điều này – Zl3n
Lỗi nào bạn nhận được khi bạn cố gắng cài đặt trình phát thành nil? Ngoài ra, bạn đã thử xóa currentItem của trình phát như tôi đã đề xuất chưa? – JAL