【发布时间】:2016-03-29 11:06:30
【问题描述】:
我有一个问题: 我想创建一个暂停按钮,当我选择一首新歌时 => 当前歌曲将停止并播放新歌。 我是 swift 的新手,所以我希望你能帮助我提供完整的代码。 非常感谢
这是我的代码:
import UIKit
import AVFoundation
class ChiTietViewController: UIViewController {
var thamsoTruyen:NSUserDefaults!
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor(patternImage: UIImage(named: "nen.jpg")!)
thamsoTruyen = NSUserDefaults()
var myplayer:AVPlayer!
var playeritem: AVPlayerItem!
var row:Int = thamsoTruyen.objectForKey("number") as! Int
var url:NSURL = NSURL(string:"http://ozz4u.com/danhsach.php?cot=mp3")!
var ds:NSString!
do{
ds = try NSString(contentsOfURL: url, encoding: NSUTF8StringEncoding)
} catch{
}
var chuoi:[String] = ds.componentsSeparatedByString("#") as [String]
var error:NSError? = nil
var u:NSURL = NSURL(string: chuoi[row])!
playeritem = AVPlayerItem(URL: u)
myplayer = AVPlayer(playerItem: playeritem)
let playerlayer = AVPlayerLayer(player: myplayer)
playerlayer.frame = CGRectMake(0, 0, 10, 15)
self.view.layer.addSublayer(playerlayer)
myplayer.play()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
【问题讨论】:
-
我的建议是,在添加新功能之前,您应该修复现有代码。这里有很多错误和问题。 1- 局部变量不应该是隐式展开的选项。 2-播放器应该在实例变量中,而不是在本地变量中。 3-
catch分支是空的,这是一个大错误,总是显示捕获的错误。 4-删除不必要的var error。 5- 不要强制打开选项。 -
感谢您的回复。我对此很陌生,所以我知道我有很多错误。如果可以请帮我编辑此代码
-
我在评论中列出了主要问题。看看这里的例子:stackoverflow.com/a/32994222/2227743。另请阅读有关 Optionals 的 Swift 文档,这非常很重要。
-
谢谢!让我试试
-
我会为你发布一个答案。但是我强烈建议按照 Eric 所说的去做并阅读基本的 swift 文档。你的代码有很多错误
标签: ios swift mp3 avaudioplayer avplayer