• Swift


    使用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 UIKit
    import MediaPlayer
     
    class 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()
             
            onSetAudio("http://hangge.com/file/music.mp3")
        }
     
        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
            }
        }
    }
  • 相关阅读:
    Nginx+IIS+Redis 处理Session共享问题 2
    Nginx+IIS+Redis 处理Session共享问题 1
    [ZooKeeper.net] 1 模仿dubbo实现一个简要的http服务的注册 基于webapi
    使用小技巧使子功能模块不污染主框架
    sqlserver 去除重复的行数据
    setsockopt用法详解
    windows 非窗口定时器
    Redis list 之增删改查
    王垠:如何掌握程序语言(转)
    【练习】整树转换为16进制的字符串的函数
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/4841057.html
Copyright © 2020-2023  润新知