在 swift 2.0 中暂停 mp3 文件
Pause mp3 file in swift 2.0
我有一个问题:
我想创建一个暂停按钮,当我选择一首新歌时 => 当前歌曲将停止并播放新歌。
我是 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()
}
您的代码中有很多基础知识错误,因此我建议您多阅读一些教程,尤其是 swift 基础文档。
我为您突出显示了它们,老实说,在您对 swift 基础知识更加熟悉之前,我认为继续您正在做的事情不是一个好主意。
import UIKit
import AVFoundation
class ChiTietViewController: UIViewController {
//var thamsoTruyen:NSUserDefaults! //BAD CODE, ALSO BAD NAMING
let localDefaults = NSUserDefaults.standardUserDefaults()
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor(patternImage: UIImage(named: "nen.jpg")!)
//thamsoTruyen = NSUserDefaults() // BAD CODE, Delete. Also not calling standardUserDefaults.
//var my player:AVPlayer! // BAD CODE, Make no sense so delete. This would make only sense if you put it above "ViewDidLoad" so you can use it across your whole class.
//var playeritem: AVPlayerItem! // See above
var row:Int = thamsoTruyen.objectForKey("number") as! Int // BAD CODE, You are not checking if the object exists but are forcing it to be an Int, which can cause a nil crash. Also you might as well use IntegerForKey when your value is an INT.
var row = localDefaults.integerForKey("number)" // Better option than above
var url:NSURL = NSURL(string:"http://ozz4u.com/danhsach.php?cot=mp3")!
var ds:NSString! // Make this optional?
do{
ds = try NSString(contentsOfURL: url, encoding: NSUTF8StringEncoding)
} catch{
// NOT CATCHING ERROR HERE, DANGEROUS
}
var chuoi:[String] = ds.componentsSeparatedByString("#") as [String]
var error:NSError? = nil
var u:NSURL = NSURL(string: chuoi[row])! // Force unwrapping so you better make sure the array exists.
let playeritem = AVPlayerItem(URL: u)
let myplayer = AVPlayer(playerItem: playeritem)
let playerlayer = AVPlayerLayer(player: myplayer)
playerlayer.frame = CGRectMake(0, 0, 10, 15)
self.view.layer.addSublayer(playerlayer)
myplayer.play()
}
现在,如果您仍在寻找问题的答案,请在 gitHub 上查看我的助手,它非常简单,并向您展示了如何暂停歌曲等。
我有一个问题: 我想创建一个暂停按钮,当我选择一首新歌时 => 当前歌曲将停止并播放新歌。 我是 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()
}
您的代码中有很多基础知识错误,因此我建议您多阅读一些教程,尤其是 swift 基础文档。
我为您突出显示了它们,老实说,在您对 swift 基础知识更加熟悉之前,我认为继续您正在做的事情不是一个好主意。
import UIKit
import AVFoundation
class ChiTietViewController: UIViewController {
//var thamsoTruyen:NSUserDefaults! //BAD CODE, ALSO BAD NAMING
let localDefaults = NSUserDefaults.standardUserDefaults()
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor(patternImage: UIImage(named: "nen.jpg")!)
//thamsoTruyen = NSUserDefaults() // BAD CODE, Delete. Also not calling standardUserDefaults.
//var my player:AVPlayer! // BAD CODE, Make no sense so delete. This would make only sense if you put it above "ViewDidLoad" so you can use it across your whole class.
//var playeritem: AVPlayerItem! // See above
var row:Int = thamsoTruyen.objectForKey("number") as! Int // BAD CODE, You are not checking if the object exists but are forcing it to be an Int, which can cause a nil crash. Also you might as well use IntegerForKey when your value is an INT.
var row = localDefaults.integerForKey("number)" // Better option than above
var url:NSURL = NSURL(string:"http://ozz4u.com/danhsach.php?cot=mp3")!
var ds:NSString! // Make this optional?
do{
ds = try NSString(contentsOfURL: url, encoding: NSUTF8StringEncoding)
} catch{
// NOT CATCHING ERROR HERE, DANGEROUS
}
var chuoi:[String] = ds.componentsSeparatedByString("#") as [String]
var error:NSError? = nil
var u:NSURL = NSURL(string: chuoi[row])! // Force unwrapping so you better make sure the array exists.
let playeritem = AVPlayerItem(URL: u)
let myplayer = AVPlayer(playerItem: playeritem)
let playerlayer = AVPlayerLayer(player: myplayer)
playerlayer.frame = CGRectMake(0, 0, 10, 15)
self.view.layer.addSublayer(playerlayer)
myplayer.play()
}
现在,如果您仍在寻找问题的答案,请在 gitHub 上查看我的助手,它非常简单,并向您展示了如何暂停歌曲等。