音乐播放器 AVAudioPlayer、定时器、UISlider
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
@interface ViewController : UIViewController
@property (strong, nonatomic) AVAudioPlayer *mediaPlayer;
@property (strong, nonatomic) UIButton *playBtn;
@property (strong, nonatomic) UIButton *stopBtn;
@property (strong, nonatomic) UIButton *pauseBtn;
@property (strong, nonatomic) UILabel *showLabel;
@property (strong, nonatomic) UISlider *processView;
@end
@implementation ViewController
NSTimer *timer;
NSString *totalTimeShowText;
- (void)viewDidLoad {
[super viewDidLoad];
// 播放器初始化 - 文件路径
NSURL *playFileUrl = [[NSBundle mainBundle]URLForResource:@"test" withExtension:@"mp3"];
_mediaPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:playFileUrl error:nil];
// 播放按钮
_playBtn = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 100, 50)];
_playBtn.backgroundColor = [UIColor grayColor];
[_playBtn setTitle:@"play" forState:UIControlStateNormal];
[_playBtn addTarget:self action:@selector(play) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:_playBtn];
//暂停按钮
_stopBtn = [[UIButton alloc]initWithFrame:CGRectMake(300, 100, 100, 50)];
_stopBtn.backgroundColor = [UIColor grayColor];
[_stopBtn setTitle:@"stop" forState:UIControlStateNormal];
[_stopBtn addTarget:self action:@selector(stop) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:_stopBtn];
//停止按钮
_pauseBtn = [[UIButton alloc]initWithFrame:CGRectMake(500, 100, 100, 50)];
_pauseBtn.backgroundColor = [UIColor grayColor];
[_pauseBtn setTitle:@"pause" forState:UIControlStateNormal];
[_pauseBtn addTarget:self action:@selector(pause) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:_pauseBtn];
// 显示文字
_showLabel = [[UILabel alloc]initWithFrame:CGRectMake(100, 200, 800, 50)];
_showLabel.textColor = [UIColor redColor];
int totalTime = _mediaPlayer.duration;
int minuts = totalTime/60;
int seconds = totalTime%60;
NSString *minusShow = minuts < 10 ? [NSString stringWithFormat:@"0%i", minuts] : [NSString stringWithFormat:@"%i", minuts];
NSString *secondsShow = seconds < 10 ? [NSString stringWithFormat:@"0%i", seconds] : [NSString stringWithFormat:@"%i", seconds];
totalTimeShowText = [NSString stringWithFormat:@"%@:%@", minusShow, secondsShow];
_showLabel.text = [NSString stringWithFormat:@"00:00 %@", totalTimeShowText];
[self.view addSubview:_showLabel];
// 进度
_processView = [[UISlider alloc]initWithFrame:CGRectMake(100, 260, 500, 15)];
[_processView addTarget:self action:@selector(slideProcess) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:_processView];
}
// 播放
-(void)play
{
NSLog(@"play...");
if(!_mediaPlayer.isPlaying)
{
[_mediaPlayer play];
}
if(!timer)
{
timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(upgrocess) userInfo:nil repeats:YES];
}
}
//停止
-(void)stop
{
if(_mediaPlayer.isPlaying)
{
[_mediaPlayer stop];
}
}
//停止
-(void)pause
{
[_mediaPlayer pause];
}
// 更新进度
-(void)upgrocess
{
_processView.value = _mediaPlayer.currentTime/_mediaPlayer.duration;
int minus = _mediaPlayer.currentTime/60;
int seconds = (int)_mediaPlayer.currentTime%60;
NSString *minusShow = minus < 10 ? [NSString stringWithFormat:@"0%i", minus] : [NSString stringWithFormat:@"%i", minus];
NSString *secondsShow = seconds < 10 ? [NSString stringWithFormat:@"0%i", seconds] : [NSString stringWithFormat:@"%i", seconds];
NSString *currentTimeText = [NSString stringWithFormat:@"%@:%@", minusShow, secondsShow];
_showLabel.text = [NSString stringWithFormat:@"%@ / %@", currentTimeText, totalTimeShowText];
}
// 拖动
-(void)slideProcess
{
_mediaPlayer.currentTime = _mediaPlayer.duration * _processView.value;
[self upgrocess];
}
音乐播放器 AVAudioPlayer、定时器、UISlider的更多相关文章
- Swift 3 :基于 AVAudioPlayer 的简单音乐播放器
2017.05.22 17:46* 字数 1585 阅读 5095评论 0喜欢 8赞赏 2 https://www.jianshu.com/p/4d5c257428a1 学习ios以来差不多接近两个月 ...
- OCiOS开发:音频播放器 AVAudioPlayer
简单介绍 AVAudioPlayer音频播放器可以提供简单的音频播放功能.其头文件包括在AVFoudation.framework中. AVAudioPlayer未提供可视化界面,须要通过其提供的播放 ...
- iOS 简单音乐播放器 界面搭建
如图搭建一个音乐播放器界面,具备以下几个简单功能: 1,界面协调,整洁. 2,点击播放,控制进度条. 3.三收藏歌曲,点击收藏,心形收藏标志颜色加深. 4,左右按钮,切换歌曲图片和标题. 5,点击中间 ...
- iOS开发拓展篇—音频处理(音乐播放器4)
iOS开发拓展篇—音频处理(音乐播放器4) 说明:该文主要介绍音乐播放器实现过程中的一些细节控制. 实现的效果: 一.完整的代码 YYPlayingViewController.m文件 // // Y ...
- iOS开发拓展篇—音频处理(音乐播放器5)
iOS开发拓展篇—音频处理(音乐播放器5) 实现效果: 一.半透明滑块的设置 /** *拖动滑块 */ - (IBAction)panSlider:(UIPanGestureRecognizer *) ...
- iOS开发拓展篇—音频处理(音乐播放器6)
iOS开发拓展篇—音频处理(音乐播放器6) 一.图片处理 说明: Aspect表示按照原来的宽高比进行缩放. Aspectfit表示按照原来的宽高比缩放,要求看到全部图片,后果是不能完全覆盖窗口,会留 ...
- ios开发学习- 简易音乐播放器2 (基于iPhone4s屏幕尺寸)-- 歌词解析--plist文件应用--imageNamed图片加载耗内存
声明:(部分图片来自网络,如果侵犯了您的权益请联系我,会尽快删除!) 又是音乐播放器,不过这次和上次不一样了,准确说这次更像播放器了,初学者不建议看这个,可以先看前面一个音乐播放器(1),当然 我没加 ...
- iso 开发学习--简易音乐播放器(基于iPhone4s屏幕尺寸)
三个按钮 一个进度条 贴图(软件中部分图片,来自网络,如果侵犯了您的权益,请联系我,会立刻撤下) 核心代码 // // ViewController.m // 08-10-MusicPlayer / ...
- ios开发:一个音乐播放器的设计与实现
github地址:https://github.com/wzpziyi1/MusicPlauer 这个Demo,关于歌曲播放的主要功能都实现了的.下一曲.上一曲,暂停,根据歌曲的播放进度动态滚动歌词, ...
随机推荐
- PHP7革新与性能优化
有幸参与2015年的PHP技术峰会(PHPCON),听了鸟哥(惠新宸)的关于PHP7的新特性和性能优化的分享,一切都令人感到激动.鸟哥是国内最权威的PHP专家,他的分享有很多非常有价值的东西,我通过整 ...
- 学习VS生活
很多时候,失败的原因归结为一点:我没有时间...代码敲不完,我真的是没有时间么?很多时候是没意识的浪费时间 我每次进教室,总能看到吴刚和赵东亮在敲代码,为啥他们有时间呢?很多时候,时间就像那啥,挤一挤 ...
- writing concurrent programs
Computer Systems A Programmer's Perspective Second Edition To this point in our study of computer sy ...
- prototype linkage can reduce object initialization time and memory consumption
//对象是可变的键控集合, //"numbers, strings, booleans (true and false), null, and undefined" 不是对象的解释 ...
- [转]如何编写和应用Java的自定义异常类
编写自定义异常类实际上是继承一个API标准异常类,用新定义的异常处理信息覆盖原有信息的过程.常用的编写自定义异常类的模式如下: public class CustomException exten ...
- [收藏]ASP.NET MVC管道详述
ASP.NET MVC从诞生到现在已经好几个年头了,这个框架提供一种全新的开发模式,更符合web开发本质.你可以很好的使用以及个性化和扩展这个框架,但这需要你对它有足够的了解.这篇文章主要从整体角度总 ...
- 蓝牙的Baseband说明
蓝牙的radio部分使用2.4GHz的ISM段,2400 - 2483.5 MHz,通道间隔1MHz,GFS调制,采用跳频技术,每秒至少1600次.连接完成后的跳频次数为1600次/s,在inquir ...
- css模仿表格 居中
<div class="service_box"><div class="service_list"> <span class=& ...
- LightOj1385 - Kingdom Division(数学几何题)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1385 题意:下图中已知面积 a b c 求 d; 如果d的面积不确定,输出-1. 连接 ...
- SQLSERER给表加自增列
alter table 表名 add 列名 int IDENTITY(1,1) NOT NULL