使用MPMoviePlayerController我们可以是进行音乐播放,下面是一个播放器样例。同时,播放时还可以显示播放时间和播放进度。

|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
import UIKitimport MediaPlayerclass ViewController: UIViewController { //申明一个媒体播放控件 var audioPlayer:MPMoviePlayerController=MPMoviePlayerController(); //申明一个计时器 var timer:NSTimer? //ProgressView控件 播放进度条 @IBOutlet weak var progressView: UIProgressView! //Label控件 播放时间 @IBOutlet weak var playTime: UILabel! override func viewDidLoad() { super.viewDidLoad() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } //播放歌曲 func onSetAudio(url:String){ //暂停当前歌曲的播放 self.audioPlayer.stop() //获取歌曲文件 self.audioPlayer.contentURL=NSURL(string:url) //播放歌曲 self.audioPlayer.play() //先停掉计时器 timer?.invalidate() //将计时器归零 playTime!.text="00:00" //开启计时器 timer=NSTimer.scheduledTimerWithTimeInterval(0.4, target: self, selector: "onUpdate", userInfo: nil, repeats: true) } //计时器更新方法 func onUpdate(){ //返回播放器当前的播放时间 let c=audioPlayer.currentPlaybackTime if c>0.0 { //歌曲的总时间 let t=audioPlayer.duration //歌曲播放的百分比 let p:CFloat=CFloat(c/t) //通过百分比设置进度条 progressView!.setProgress(p, animated: true) //一个小算法,来实现00:00这种格式的播放时间 let all:Int=Int(c) let m:Int=all % 60 let f:Int=Int(all/60) var time:String="" if f<10{ time="0(f):" }else { time="(f)" } if m<10{ time+="0(m)" }else { time+="(m)" } //更新播放时间 playTime!.text=time } }} |