使用 AVplayer 在 swift3 中制作 class
Make class in swift3 with AVplayer
这是代码:
import Foundation
import UIKit
import AVFoundation
class MP3PLAYER {
var player = AVPlayer()
func PLAY (){
player.play()
}
init ( url_ : String , autoplay_ : String , player_ : AVPlayer) {
player = player_
let url = url_
let playerItem = AVPlayerItem( url:URL( string:url )! )
player = AVPlayer(playerItem:playerItem)
player.rate = 1.0;
if autoplay_ == "YES" {
player.play()
print("autoplay is on")
}
}
}
这段代码没有错误甚至警告。
根本玩家不会玩。如果我将代码直接放在 viewController 中而不是播放器工作......
我在viewController中这样使用class:
<code>
import UIKit
import AVFoundation
class Mp3Stream_example: UIViewController {
var player = AVPlayer()
override func viewDidLoad() {
super.viewDidLoad()
let STREAM1 = MP3PLAYER(url_: "http://listen.181fm.com:181-soul_128k.mp3" , autoplay_: "YES" , player_ : player )
STREAM1.player.play()
//player.play()
.....
</code>
您的播放器 STREAM1
超出范围并正在被释放,因此没有声音。使它成为 class 成员变量而不是局部变量。例如
class Mp3Stream_example: UIViewController {
let STREAM1 = MP3PLAYER(url_: "http://listen.181fm.com:181-soul_128k.mp3" , autoplay_: "YES" , player_ : AVPlayer() )
....
P.S。您有不需要的额外 AVPlayer
。
这是代码:
import Foundation
import UIKit
import AVFoundation
class MP3PLAYER {
var player = AVPlayer()
func PLAY (){
player.play()
}
init ( url_ : String , autoplay_ : String , player_ : AVPlayer) {
player = player_
let url = url_
let playerItem = AVPlayerItem( url:URL( string:url )! )
player = AVPlayer(playerItem:playerItem)
player.rate = 1.0;
if autoplay_ == "YES" {
player.play()
print("autoplay is on")
}
}
}
这段代码没有错误甚至警告。
根本玩家不会玩。如果我将代码直接放在 viewController 中而不是播放器工作......
我在viewController中这样使用class:
<code>
import UIKit
import AVFoundation
class Mp3Stream_example: UIViewController {
var player = AVPlayer()
override func viewDidLoad() {
super.viewDidLoad()
let STREAM1 = MP3PLAYER(url_: "http://listen.181fm.com:181-soul_128k.mp3" , autoplay_: "YES" , player_ : player )
STREAM1.player.play()
//player.play()
.....
</code>
您的播放器 STREAM1
超出范围并正在被释放,因此没有声音。使它成为 class 成员变量而不是局部变量。例如
class Mp3Stream_example: UIViewController {
let STREAM1 = MP3PLAYER(url_: "http://listen.181fm.com:181-soul_128k.mp3" , autoplay_: "YES" , player_ : AVPlayer() )
....
P.S。您有不需要的额外 AVPlayer
。