ios开发——实用技术篇Swift篇&播放MP3
播放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的更多相关文章
- ios开发——实用技术篇Swift篇&视频
视频 // MARK: - 播放视频 /*----- 播放视频 ------*/ func moviePlayerPreloadFinish(notification:NSNotification) ...
- ios开发——实用技术篇Swift篇&录音
录音 // MARK: - 录音 /*----- 录音 ------*/ var recorder:AVAudioRecorder? //录音器 var player:AVAudioPlayer? / ...
- ios开发——实用技术篇Swift篇&系统声音
系统声音 // MARK: - 系统声音 /*----- 系统声音 ------*/ @IBAction func systemSound() { //建立的SystemSoundID对象 var s ...
- ios开发——实用技术篇Swift篇&地址薄、短信、邮件
//返回按钮事件 @IBAction func backButtonClick() { self.navigationController?.popViewControllerAnimated(tru ...
- ios开发——实用技术篇Swift篇&拍照
拍照 // MARK: - 拍照 func fromPhotograph() { if UIImagePickerController.isSourceTypeAvailable(.Camera) { ...
- ios开发——实用技术篇Swift篇&照片选择
照片选择 // MARK: - 选择照片 /*----- 选择照片 ------*/ @IBAction func addImageButtonClick() { let actionSheet = ...
- ios开发——实用技术篇Swift篇&加速计和陀螺仪
加速计和陀螺仪 //返回按钮事件 @IBAction func backButtonClick() { self.navigationController?.popViewControllerAnim ...
- ios开发——实用技术篇Swift篇&多点触摸与手势识别
多点触摸与手势识别 //点击事件 var atap = UITapGestureRecognizer(target: self, action: "tapDo:") self.vi ...
- ios开发——实用技术篇OC篇&iOS的主要框架
iOS的主要框架 阅读目录 Foundation框架为所有的应用程序提供基本系统服务 UIKit框架提供创建基于触摸用户界面的类 Core Data框架管着理应用程序数据模型 Core ...
随机推荐
- 传统企业,"哀兵必胜"的想法要不得
[文/ 任英杰]同事在内网上发了一篇文章『哀兵必胜』,思量数日,作文应对.文中表达的积极精神让人敬佩,但背后似乎隐含着一股莫名的“情绪”.对行业大格局的基本看法会影响公司转型的成败,觉得还是有必要讨论 ...
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法----细节决定成败 (sort用法)
C++中cin.cin.get().cin.getline().getline().gets()等函数的用法 学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结,为了自己复习,也希望对后来者能有 ...
- [转] Python自动单元测试框架
一.软件测试 大型软件系统的开发是一个很复杂的过程,其中因为人的因素而所产生的错误非常多,因此软件在开发过程必须要有相应的质量保证活动,而软件测试则是保证质量的关键措施.正像软件熵(software ...
- linux命令 screen的简单使用
在远程命令行下某些长时间的操作,一旦网络出现故障,后果可能会很严重,在这种情况下可以使用screen命令来解决.screen可以创建一个session,在不小心断开以后还可以继续恢复session保存 ...
- 获取子窗口中使用jQuery.data()设置的参数
http://hyj1254.iteye.com/blog/643035 假设在iframe子窗口中设置了$('#mydata').data('key','hello world'); 那在包含ifr ...
- PHP代码格式化批量脚本
@echo off echo please input phpCB url: set /p input= cd /d "E:\tools\phpCB\" phpCB --space ...
- 【OpenOffice+swftools】在线预览环境的搭建和xpdf中文包的配置
[环境参数] Host:Win7 64bit VMware:VMware Workstation11.1.0 Client OS:CentOS release 6.5 (Final) 2.6.32-4 ...
- 【转】玩转log4j
原文链接:http://www.cnblogs.com/shenliang123/archive/2012/05/02/2479286.html 由于最近正在扩展卫生局考务系统,由于上一次使用过一次该 ...
- Chocolatey的安装与使用
@(编程) 前言 在 Linux 下,大家喜欢用 apt-get 来安装应用程序,如今在 windows 下,大家可以使用 Chocolatey 来快速下载搭建一个开发环境. Chocolatey 的 ...
- LightOJ 13361336 - Sigma Function (找规律 + 唯一分解定理)
http://lightoj.com/volume_showproblem.php?problem=1336 Sigma Function Time Limit:2000MS Memory L ...