iOS 开发 - 播放器Demo开发记录
iOS 开发 - 播放器Demo开发记录
版权声明:本文为博主原创文章,未经博主允许不得转载。
首先
- #import <AVFoundation/AVFoundation.h>
于viewDidLoad中
- //设置代理
- XYZAVAudioPlayer.delegate = self;
创建音频类
- @interface ViewController () {
- AVAudioPlayer *XYZAVAudioPlayer; //播放器player
- NSTimer *timer; //监控音频播放进度
- NSTimer *stoptimer; //歌曲结束声量控制
- }
设置播放
- //从budle路径下读取音频文件 轻音乐 - 萨克斯回家 这个文件名是你的歌曲名字,mp3是你的音频格式
- NSString *string = [[NSBundle mainBundle] pathForResource:@"G.E.M.邓紫棋 - 喜欢你" ofType:@"mp3"];
- //把音频文件转换成url格式
- NSURL *url = [NSURL fileURLWithPath:string];
- //初始化音频类 并且添加播放文件
- XYZAVAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
- //设置音乐播放次数 -1为一直循环
- XYZAVAudioPlayer.numberOfLoops = -1;
- //预播放
- [XYZAVAudioPlayer prepareToPlay];
- //用NSTimer来监控音频播放进度
- timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self
- selector:@selector(playProgress)
- userInfo:nil repeats:YES];
- //初始化音量控制
- [self.VolumeSlider addTarget:self action:@selector(volumeChange)
- forControlEvents:UIControlEventValueChanged];
- //设置最小音量
- self.VolumeSlider.minimumValue = 0.0f;
- //设置最大音量
- self.VolumeSlider.maximumValue = 10.0f;
- //初始化音量为多少
- self.VolumeSlider.value = 5.0f;
- //声音开关控件(静音)
- [self.musicSwith addTarget:self action:@selector(onOrOff:) forControlEvents:UIControlEventValueChanged];
- //默认状态为打开
- self.musicSwith.on = YES;
- //进度条slider控件
- [self.musicSlider addTarget:self action:@selector(playSlider) forControlEvents:UIControlEventValueChanged];
- stoptimer = [NSTimer timerWithTimeInterval:0.1 target:self selector:@selector(selector) userInfo:nil repeats:YES];
余下方法
- //进度条控制
- -(void)playSlider {
- XYZAVAudioPlayer.currentTime = XYZAVAudioPlayer.duration * self.musicSlider.value;
- }
- //播放
- - (void)play
- {
- [XYZAVAudioPlayer play];
- }
- //暂停
- - (void)pause
- {
- [XYZAVAudioPlayer pause];
- }
- //停止
- - (void)stop
- {
- XYZAVAudioPlayer.currentTime = 0; //当前播放时间设置为0
- [XYZAVAudioPlayer stop];
- }
- //播放进度条
- - (void)playProgress
- {
- //通过音频播放时长的百分比,给progressview进行赋值;
- self.musicprogress.progress = XYZAVAudioPlayer.currentTime/XYZAVAudioPlayer.duration;
- NSLog(@"%f --- %f",XYZAVAudioPlayer.currentTime,XYZAVAudioPlayer.duration);
- self.startTime.text = [NSString stringWithFormat:@"%f",XYZAVAudioPlayer.currentTime];
- self.stopTime.text = [NSString stringWithFormat:@"%f",XYZAVAudioPlayer.duration];
- self.musicSlider.value = XYZAVAudioPlayer.currentTime/XYZAVAudioPlayer.duration;
- }
- //声音开关(是否静音)
- - (void)onOrOff:(UISwitch *)sender
- {
- XYZAVAudioPlayer.volume = sender.on;
- }
- //播放音量控制
- //待实现控制系统音量
- - (void)volumeChange
- {
- XYZAVAudioPlayer.volume = self.VolumeSlider.value;
- }
- //播放完成时调用的方法 (代理里的方法),需要设置代理才可以调用
- - (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
- {
- [timer invalidate]; //NSTimer暂停 invalidate 使...无效;
- }
- - (IBAction)StopBtn:(id)sender {
- [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(stopVolume:) userInfo:nil repeats:YES];
- XYZAVAudioPlayer.currentTime = 0; //当前播放时间设置为0
- [XYZAVAudioPlayer stop];
- }
- - (IBAction)PlayBtn:(id)sender {
- [XYZAVAudioPlayer play];
- }
- - (IBAction)PauseBtn:(id)sender {
- [XYZAVAudioPlayer pause];
- }
iOS 开发 - 播放器Demo开发记录相关推荐
- VLC播放器Demo(录像,截图等功能),Android播放器Demo可二次开发。ffmpeg-Kit (录像,截图,合流播放,合流推送,等一些列视频操作功能),可二次开发。
VLC播放器Demo(录像,截图等功能),可二次开发. ffmpeg-Kit (录像,截图,合流播放,合流推送,等一些列视频操作功能),可二次开发. 如果帮助的到了您,请您不要吝啬你的Star,先谢谢 ...
- html在线音频播放器实训总结,HTML5音乐列表播放器SMusic开发总结
前段时间写过一篇介绍简单音乐播放器效果开发的博文<为你的博客添加简单的CSS3音乐播放器>,实现了单曲循环播放效果,这个效果也是我的博客首页一直有的效果,同时文中也介绍了一些简单的HTML ...
- 微信小程序之网易云音乐(五)- 排行详情页、歌单详情页、播放器组件开发
微信小程序之网易云音乐(五)- 排行详情页.歌单详情页.播放器组件开发 一. 排行详情页模块 二. 歌单详情页模块 三. 播放器组件 微信小程序之网易云音乐导航 一. 排行详情页模块 rank.vue ...
- Android 音乐播放器的开发教程(三) 小卷毛播放器的主界面开发 ---- 小达
Android 音乐播放器的开发教程(三) 小卷毛播放器的主界面开发 拿好素材之后,打开你们的开发工具,小达这里用的是android studio1.0, 新建一个项目,打开activity_main ...
- Android音乐播放器的开发实例(2021新版-Java版)
Android音乐播放器的开发实例 介绍 该项目旨在引导喜爱 Android 开发爱好者入门教程实例,可以一步一步的跟着来完成属于自己的项目开发过程. 此项目为基于 Java 语言开发,使用 Recy ...
- C++基于ffmpeg和QT开发播放器~学习笔记
C++基于ffmpeg和QT开发播放器 B站网址 https://www.bilibili.com/video/BV1h44y1t7D8?p=2&spm_id_from=pageDriver ...
- 使用VLC开源库开发播放器
使用VLC开发播放器,分为如下几步: 1. 下载VLC开源库 下载VLC开源库,可在官网上下载, 地址如下:http://download.videolan.org/pub/videolan/vlc/ ...
- Android 音乐播放器的开发教程(二)反编译apk ----- 小达
Android 音乐播放器的开发教程(二)基本布局 在上一篇中简单的介绍了下小卷毛播放器的基本情况,现在就正式的开始一步一步的做播放器.首先想要一个漂亮的UI(不是我的这个...),就需要好的素材,没 ...
- 【Android-Service】基于MVP的音乐播放器demo实现思路(附源码)
最近在学习service相关的内容,在该部分的学习过程中,根据学习视频中的内容进行了总结归纳,以下是音乐播放器demo的开发思路,具体步骤及源码: 有关MVP框架的内容可看: link. 实现效果: ...
最新文章
- 密码学+赛博朋克,关于密码朋克们的奇妙故事
- PhotoshopCS6-视觉特效插画技法-1-什么是视觉特效(1)
- MySQL不能查看表_mysql root用户登录后无法查看数据库全部表
- 转:C# Thread
- 那些年,使用Github的正确姿势
- LeetCode 1071. 字符串的最大公因子(字符串的最大公约数)
- Java中的一些坑,汇总篇(2万字)
- 安装SQL2012数据库步骤
- 什么是反馈电路?反馈有什么作用?
- Notion,程序员最后一款笔记软件
- Android 录制手机内部声音(screen recorder)framework层问题分析
- 官方scratch3.0正式发布,全面支持移动设备在线编程!
- 电子印章结构以及规范讲解
- Golang 开发之Cobra初探
- window10快捷键
- 如何让智能家居环境,变得更加安全
- linux调整主被动模式,Ftp修改为主被动模式命令
- 2014cad运行要计算机内,win7系统2014cad出现致命错误的解决方法
- 【SAP消息号CK322】
- 收藏图片网址https://www.easyicon.net/iconsearch/down/