播放MP3

     // MARK: - 播放MP3
     /*----- mp3 ------*/
     //定时器-
     func updateTime()
     {
         //获取音频播放器播放的进度,单位秒
         var cuTime:Float = Float(audioPlayer.currentTime)

         //更新进度条
         jinDuSlider.value = cuTime

         //获取总时间
         var duTime:Float = Float(audioPlayer.duration)

         //播放时间秒数,换算成:时、分、秒
         var hour1:Int = Int(cuTime/(*))
         var minute1:Int = Int(cuTime/)
         var second1:Int = Int(cuTime%)

         //总时间秒数,换算成:时、分、秒
         var hour2:Int = Int(duTime/(*))
         var minute2:Int = Int(duTime/)
         var second2:Int = Int(duTime%)

         //label显示
 //        timeLabel.text = NSString(format: "%.2d:%.2d:%.2d / %.2d:%.2d:%.2d",hour1,minute1,second1,hour2,minute2,second2)

         //2015年5月2后修改
         timeLabel.text = NSString(format: "%.2d:%.2d:%.2d / %.2d:%.2d:%.2d",hour1,minute1,second1,hour2,minute2,second2) as String
     }

     //播放按钮事件
     @IBAction func audioPlayButton()
     {
         if audioPlayer.playing
         {
             return;//如果已在播放,跳出
         }

         //开始播放音频文件
         audioPlayer.play()

         //设置进图条最小是=0
         jinDuSlider.minimumValue = 0.0;

         //设置进度条最大值等于声音的描述
         jinDuSlider.maximumValue = Float(audioPlayer.duration)

         //启动定时器 定时更新进度条和时间label 在updateTime方法中实现
         _timer = NSTimer.scheduledTimerWithTimeInterval(0.5, target: self, selector: "updateTime", userInfo: nil, repeats: true)
     }

     //暂停
     @IBAction func audioPauseButton(sender:UIButton)
     {
         var title = sender.titleForState(UIControlState.Normal)
         if  title == "Pause" && audioPlayer.playing
         {
             audioPlayer.pause()
             sender.setTitle("Continue", forState: UIControlState.Normal)
         }
         else if title == "Continue"
         {
             sender.setTitle("Pause", forState: UIControlState.Normal)
             audioPlayer.play()
         }
     }

     //停止
     @IBAction func audioStopButton(sender:UIButton)
     {
         if(audioPlayer.playing)
         {
             audioPlayer.stop()
             audioPlayer.currentTime=;
             timeLabel.text = "";
         }
     }

     //调 进度
     @IBAction func jinDuChange(sender:UISlider)
     {
         //获取jinDuSlider的值来设置音频播放器进度
         audioPlayer.currentTime = NSTimeInterval(jinDuSlider.value)

         //播放器播放
         audioPlayer.play()
     }

     //控制声音
     @IBAction func audioSoundChange(sender:UISlider)
     {
         //获取UISlider对象的值,并设置audioPlayer.volume
         audioPlayer.volume = sender.value

         aLabel.text = "\(sender.value)"
     }

     //播放代理AVAudioPlayerDelegate
     func audioPlayerDidFinishPlaying(player: AVAudioPlayer!, successfully flag: Bool)
     {
         //成功播放完毕结束
     }

     func audioPlayerDecodeErrorDidOccur(player: AVAudioPlayer!, error: NSError!)
     {
         //音频播放器的解码错误
     }

     //@availability(iOS, introduced=2.2, deprecated=8.0)
     func audioPlayerBeginInterruption(player: AVAudioPlayer!)
     {
         //音频播放器开始中断
     }

     //@availability(iOS, introduced=6.0, deprecated=8.0)
     func audioPlayerEndInterruption(player: AVAudioPlayer!, withOptions flags: Int)
     {
         //音频播放结束中断
     }

     /*-----mp3 end------*/
 

ios开发——实用技术篇Swift篇&播放MP3的更多相关文章

  1. ios开发——实用技术篇Swift篇&视频

    视频 // MARK: - 播放视频 /*----- 播放视频 ------*/ func moviePlayerPreloadFinish(notification:NSNotification) ...

  2. ios开发——实用技术篇Swift篇&录音

    录音 // MARK: - 录音 /*----- 录音 ------*/ var recorder:AVAudioRecorder? //录音器 var player:AVAudioPlayer? / ...

  3. ios开发——实用技术篇Swift篇&系统声音

    系统声音 // MARK: - 系统声音 /*----- 系统声音 ------*/ @IBAction func systemSound() { //建立的SystemSoundID对象 var s ...

  4. ios开发——实用技术篇Swift篇&地址薄、短信、邮件

    //返回按钮事件 @IBAction func backButtonClick() { self.navigationController?.popViewControllerAnimated(tru ...

  5. ios开发——实用技术篇Swift篇&拍照

    拍照 // MARK: - 拍照 func fromPhotograph() { if UIImagePickerController.isSourceTypeAvailable(.Camera) { ...

  6. ios开发——实用技术篇Swift篇&照片选择

    照片选择 // MARK: - 选择照片 /*----- 选择照片 ------*/ @IBAction func addImageButtonClick() { let actionSheet = ...

  7. ios开发——实用技术篇Swift篇&加速计和陀螺仪

    加速计和陀螺仪 //返回按钮事件 @IBAction func backButtonClick() { self.navigationController?.popViewControllerAnim ...

  8. ios开发——实用技术篇Swift篇&多点触摸与手势识别

    多点触摸与手势识别 //点击事件 var atap = UITapGestureRecognizer(target: self, action: "tapDo:") self.vi ...

  9. ios开发——实用技术篇OC篇&iOS的主要框架

    iOS的主要框架         阅读目录 Foundation框架为所有的应用程序提供基本系统服务 UIKit框架提供创建基于触摸用户界面的类 Core Data框架管着理应用程序数据模型 Core ...

随机推荐

  1. leetcode:Palindrome Number

    Question: Determine whether an integer is a palindrome. Do this without extra space. Some hints: Cou ...

  2. Python进程和线程

    引入进程和线程的概念及区别 1.线程的基本概念 概念 线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但 ...

  3. HLS -- m3u8档案格式解析

    1. Playlist file 一个M3U的 Playlist 就是一个由多个独立行组成的文本文件,每行由回车/换行区分.每一行可以是一个URI.空白行或 是以”#“号开头的字符串,并且空格只能存在 ...

  4. 理解OAuth 2.0 -摘自网络

    OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版.                                      本文对OA ...

  5. dom 动态生产表格

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  6. 老 base64 for xe8

    not recommend ,only for study procedure TForm1.Button3Click(Sender: TObject); var ssi, sso: TStringS ...

  7. LabVIEW数据记录和存储—XML文件

    XML(eXtensible Markup Language)是一种目前广泛使用的数据传输和存储的格式,其本质上是一种文本文件,可以使用任何一个文本编辑工具打开和修改.类似于HTML,XML被设计为具 ...

  8. css3 动画demo

    1)http://www.yyyweb.com/demo/css-cokecan/inner.html 2)页面切换效果demo http://www.yyyweb.com/demo/page-tra ...

  9. (图解版)SQL Server数据库备份与还原

        本文介绍了SQL Server数据库备份的两种方式.一种是直接拷贝数据库中的文件mdf 和日志文件ldf,另一种是生成脚本语言. 第一种方式:     选中需要备份的数据库,将数据库从运行的数 ...

  10. halcon,C# 学习

    Halcon学习之一:查询图像参数 1.get_grayval ( Image : : Row, Column : Grayval ) 计算Image图像中坐标为(Row,Column)的点的灰度值G ...