iOS 开发 - 播放器Demo开发记录

标签: ios
2014-12-22 14:14 518人阅读 评论(0) 收藏 举报

 分类:
Mac OS X(50) 

版权声明:本文为博主原创文章,未经博主允许不得转载。

首先

[objc] view plaincopy
  1. #import <AVFoundation/AVFoundation.h>

于viewDidLoad中

[objc] view plaincopy
  1. //设置代理
  2. XYZAVAudioPlayer.delegate = self;

创建音频类

[objc] view plaincopy
  1. @interface ViewController () {
  2. AVAudioPlayer *XYZAVAudioPlayer;   //播放器player
  3. NSTimer *timer;                 //监控音频播放进度
  4. NSTimer *stoptimer;            //歌曲结束声量控制
  5. }

设置播放

[objc] view plaincopy
  1. //从budle路径下读取音频文件  轻音乐 - 萨克斯回家 这个文件名是你的歌曲名字,mp3是你的音频格式
  2. NSString *string = [[NSBundle mainBundle] pathForResource:@"G.E.M.邓紫棋 - 喜欢你" ofType:@"mp3"];
  3. //把音频文件转换成url格式
  4. NSURL *url = [NSURL fileURLWithPath:string];
  5. //初始化音频类 并且添加播放文件
  6. XYZAVAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
  7. //设置音乐播放次数  -1为一直循环
  8. XYZAVAudioPlayer.numberOfLoops = -1;
  9. //预播放
  10. [XYZAVAudioPlayer prepareToPlay];
  11. //用NSTimer来监控音频播放进度
  12. timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self
  13. selector:@selector(playProgress)
  14. userInfo:nil repeats:YES];
  15. //初始化音量控制
  16. [self.VolumeSlider addTarget:self action:@selector(volumeChange)
  17. forControlEvents:UIControlEventValueChanged];
  18. //设置最小音量
  19. self.VolumeSlider.minimumValue = 0.0f;
  20. //设置最大音量
  21. self.VolumeSlider.maximumValue = 10.0f;
  22. //初始化音量为多少
  23. self.VolumeSlider.value = 5.0f;
  24. //声音开关控件(静音)
  25. [self.musicSwith addTarget:self action:@selector(onOrOff:) forControlEvents:UIControlEventValueChanged];
  26. //默认状态为打开
  27. self.musicSwith.on = YES;
  28. //进度条slider控件
  29. [self.musicSlider addTarget:self action:@selector(playSlider) forControlEvents:UIControlEventValueChanged];
  30. stoptimer = [NSTimer timerWithTimeInterval:0.1 target:self selector:@selector(selector) userInfo:nil repeats:YES];

余下方法

[objc] view plaincopy
  1. //进度条控制
  2. -(void)playSlider {
  3. XYZAVAudioPlayer.currentTime = XYZAVAudioPlayer.duration * self.musicSlider.value;
  4. }
  5. //播放
  6. - (void)play
  7. {
  8. [XYZAVAudioPlayer play];
  9. }
  10. //暂停
  11. - (void)pause
  12. {
  13. [XYZAVAudioPlayer pause];
  14. }
  15. //停止
  16. - (void)stop
  17. {
  18. XYZAVAudioPlayer.currentTime = 0;  //当前播放时间设置为0
  19. [XYZAVAudioPlayer stop];
  20. }
  21. //播放进度条
  22. - (void)playProgress
  23. {
  24. //通过音频播放时长的百分比,给progressview进行赋值;
  25. self.musicprogress.progress = XYZAVAudioPlayer.currentTime/XYZAVAudioPlayer.duration;
  26. NSLog(@"%f --- %f",XYZAVAudioPlayer.currentTime,XYZAVAudioPlayer.duration);
  27. self.startTime.text = [NSString stringWithFormat:@"%f",XYZAVAudioPlayer.currentTime];
  28. self.stopTime.text = [NSString stringWithFormat:@"%f",XYZAVAudioPlayer.duration];
  29. self.musicSlider.value = XYZAVAudioPlayer.currentTime/XYZAVAudioPlayer.duration;
  30. }
  31. //声音开关(是否静音)
  32. - (void)onOrOff:(UISwitch *)sender
  33. {
  34. XYZAVAudioPlayer.volume = sender.on;
  35. }
  36. //播放音量控制
  37. //待实现控制系统音量
  38. - (void)volumeChange
  39. {
  40. XYZAVAudioPlayer.volume = self.VolumeSlider.value;
  41. }
  42. //播放完成时调用的方法  (代理里的方法),需要设置代理才可以调用
  43. - (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
  44. {
  45. [timer invalidate]; //NSTimer暂停   invalidate  使...无效;
  46. }
  47. - (IBAction)StopBtn:(id)sender {
  48. [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(stopVolume:) userInfo:nil repeats:YES];
  49. XYZAVAudioPlayer.currentTime = 0;  //当前播放时间设置为0
  50. [XYZAVAudioPlayer stop];
  51. }
  52. - (IBAction)PlayBtn:(id)sender {
  53. [XYZAVAudioPlayer play];
  54. }
  55. - (IBAction)PauseBtn:(id)sender {
  56. [XYZAVAudioPlayer pause];
  57. }

iOS 开发 - 播放器Demo开发记录相关推荐

  1. VLC播放器Demo(录像,截图等功能),Android播放器Demo可二次开发。ffmpeg-Kit (录像,截图,合流播放,合流推送,等一些列视频操作功能),可二次开发。

    VLC播放器Demo(录像,截图等功能),可二次开发. ffmpeg-Kit (录像,截图,合流播放,合流推送,等一些列视频操作功能),可二次开发. 如果帮助的到了您,请您不要吝啬你的Star,先谢谢 ...

  2. html在线音频播放器实训总结,HTML5音乐列表播放器SMusic开发总结

    前段时间写过一篇介绍简单音乐播放器效果开发的博文<为你的博客添加简单的CSS3音乐播放器>,实现了单曲循环播放效果,这个效果也是我的博客首页一直有的效果,同时文中也介绍了一些简单的HTML ...

  3. 微信小程序之网易云音乐(五)- 排行详情页、歌单详情页、播放器组件开发

    微信小程序之网易云音乐(五)- 排行详情页.歌单详情页.播放器组件开发 一. 排行详情页模块 二. 歌单详情页模块 三. 播放器组件 微信小程序之网易云音乐导航 一. 排行详情页模块 rank.vue ...

  4. Android 音乐播放器的开发教程(三) 小卷毛播放器的主界面开发 ---- 小达

    Android 音乐播放器的开发教程(三) 小卷毛播放器的主界面开发 拿好素材之后,打开你们的开发工具,小达这里用的是android studio1.0, 新建一个项目,打开activity_main ...

  5. Android音乐播放器的开发实例(2021新版-Java版)

    Android音乐播放器的开发实例 介绍 该项目旨在引导喜爱 Android 开发爱好者入门教程实例,可以一步一步的跟着来完成属于自己的项目开发过程. 此项目为基于 Java 语言开发,使用 Recy ...

  6. C++基于ffmpeg和QT开发播放器~学习笔记

    C++基于ffmpeg和QT开发播放器 B站网址 https://www.bilibili.com/video/BV1h44y1t7D8?p=2&spm_id_from=pageDriver ...

  7. 使用VLC开源库开发播放器

    使用VLC开发播放器,分为如下几步: 1. 下载VLC开源库 下载VLC开源库,可在官网上下载, 地址如下:http://download.videolan.org/pub/videolan/vlc/ ...

  8. Android 音乐播放器的开发教程(二)反编译apk ----- 小达

    Android 音乐播放器的开发教程(二)基本布局 在上一篇中简单的介绍了下小卷毛播放器的基本情况,现在就正式的开始一步一步的做播放器.首先想要一个漂亮的UI(不是我的这个...),就需要好的素材,没 ...

  9. 【Android-Service】基于MVP的音乐播放器demo实现思路(附源码)

    最近在学习service相关的内容,在该部分的学习过程中,根据学习视频中的内容进行了总结归纳,以下是音乐播放器demo的开发思路,具体步骤及源码: 有关MVP框架的内容可看: link. 实现效果: ...

最新文章

  1. 密码学+赛博朋克,关于密码朋克们的奇妙故事
  2. PhotoshopCS6-视觉特效插画技法-1-什么是视觉特效(1)
  3. MySQL不能查看表_mysql root用户登录后无法查看数据库全部表
  4. 转:C# Thread
  5. 那些年,使用Github的正确姿势
  6. LeetCode 1071. 字符串的最大公因子(字符串的最大公约数)
  7. Java中的一些坑,汇总篇(2万字)
  8. 安装SQL2012数据库步骤
  9. 什么是反馈电路?反馈有什么作用?
  10. Notion,程序员最后一款笔记软件
  11. Android 录制手机内部声音(screen recorder)framework层问题分析
  12. 官方scratch3.0正式发布,全面支持移动设备在线编程!
  13. 电子印章结构以及规范讲解
  14. Golang 开发之Cobra初探
  15. window10快捷键
  16. 如何让智能家居环境,变得更加安全
  17. linux调整主被动模式,Ftp修改为主被动模式命令
  18. 2014cad运行要计算机内,win7系统2014cad出现致命错误的解决方法
  19. 【SAP消息号CK322】
  20. 收藏图片网址https://www.easyicon.net/iconsearch/down/

热门文章

  1. 智原扩展ASIC服务支持三星FinFET工艺以提供新一代产品应用需求
  2. 财路网每日原创推送:币圈灰姑娘,BSV弱市该如何逆袭
  3. ubuntu14.10 tftp服务配置20150824
  4. 比较好用的邮箱有哪些?收费邮箱主要哪家好呢?
  5. CVPR 2022 结果出炉,最全论文下载及分类汇总(更新中)
  6. 求助 MOR-Tales of seafaring
  7. 计算机体系结构2030:未来15年的研究愿景*Mark Hill
  8. 802协议族太网帧格式
  9. 考研英语一复习经验帖【干货】
  10. 百度地图api设置html5,百度地图API详解之自定义地图类型