IOS 实现音频视频播放器功能
来源:互联网 发布:如何进驻淘宝 编辑:程序博客网 时间:2024/06/06 02:46
//音频播放器// ViewController.h// AVAudioPlayer//// Created by mouweng on 17/8/26.// Copyright © 2017年 mouweng. All rights reserved.//#import <UIKit/UIKit.h>//导入音频播放系统库文件#import <AVFoundation/AVFoundation.h>@interface ViewController : UIViewController<AVAudioPlayerDelegate>//音频播放协议{ //播放暂停停止按钮 UIButton *_btnPlay; UIButton *_btnPause; UIButton *_btnStop; UIProgressView *_musicProgress; //音乐播放进度 UISlider *_volumeSlider; //声音大小调整滑动条 UISwitch *_volumeOn; //静音开关 AVAudioPlayer *_player ; //音频播放器 NSTimer *_timer; //定义一个定时器,可以跟进进度}@end
//// ViewController.m// AVAudioPlayer//// Created by mouweng on 17/8/26.// Copyright © 2017年 mouweng. All rights reserved.//#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. _btnPlay = [UIButton buttonWithType:UIButtonTypeRoundedRect]; _btnPlay.frame = CGRectMake(100, 100, 100, 40); [_btnPlay setTitle:@"播放" forState:UIControlStateNormal]; [_btnPlay addTarget:self action:@selector(pressPlay) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:_btnPlay]; _btnPause = [UIButton buttonWithType:UIButtonTypeRoundedRect]; _btnPause.frame = CGRectMake(100, 160, 100, 40); [_btnPause setTitle:@"暂停" forState:UIControlStateNormal]; [_btnPause addTarget:self action:@selector(pressPause) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:_btnPause]; _btnStop = [UIButton buttonWithType:UIButtonTypeRoundedRect]; _btnStop.frame = CGRectMake(100, 220, 100, 40); [_btnStop setTitle:@"停止" forState:UIControlStateNormal]; [_btnStop addTarget:self action:@selector(pressStop) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:_btnStop]; //创建进度条 _musicProgress = [[UIProgressView alloc] initWithFrame:CGRectMake(10, 300, 300, 20)]; _musicProgress.progress = 0; [self.view addSubview:_musicProgress]; //创建声音条 _volumeSlider = [[UISlider alloc] initWithFrame:CGRectMake(10, 380, 300, 20)]; _volumeSlider.maximumValue = 100; _volumeSlider.minimumValue = 0; _volumeSlider.value = 50; [_volumeSlider addTarget:self action:@selector(volumeChange:) forControlEvents:UIControlEventValueChanged]; [self.view addSubview:_volumeSlider]; _player.delegate = self; [self createPlayer];}//当音乐放完时调用- (void) audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{ [_timer invalidate];}- (void)createPlayer{ NSString *str = [[NSBundle mainBundle] pathForResource:@"Music" ofType:@"mp3"]; NSURL *_urlMusic = [NSURL fileURLWithPath:str]; //创建音频播放器对象2 _player = [[AVAudioPlayer alloc] initWithContentsOfURL:_urlMusic error:nil]; [_player prepareToPlay];//准备播放(转码解码工作) _player.numberOfLoops = 1;//循环播放的次数(-1表示无限循环) _player.volume = 0.5;//设置音量大小 //第一个时间间隔0.1秒调用一次 _timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateTime) userInfo:nil repeats:YES];//定义一个定时器对象,用于跟新进度条}- (void)pressPlay{ NSLog(@"play"); [_player play];}- (void)pressPause{ NSLog(@"pause"); [_player pause];}- (void)pressStop{ NSLog(@"stop"); [_player stop]; _player.currentTime = 0;//当前播放时前清零}- (void)volumeChange:(UISlider *)slider{ NSLog(@"%f",slider.value); _player .volume = slider.value/100;}- (void)updateTime{ _musicProgress.progress = _player.currentTime/_player.duration;}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end
//视频播放器// ViewController.h// MPMoviePlayerViewConrroller//// Created by mouweng on 17/8/27.// Copyright © 2017年 mouweng. All rights reserved.//#import <UIKit/UIKit.h>//导入苹果的官方播放器头文件(封装了音频视频的播放类和其编码解码基础类库)#import <MediaPlayer/MediaPlayer.h>@interface ViewController : UIViewController{ //定义一个播放器对象 MPMoviePlayerController *_playerController; //定义一个播放器视图控制器 MPMoviePlayerViewController *_playerView; }@end
//// ViewController.m// MPMoviePlayerViewConrroller//// Created by mouweng on 17/8/27.// Copyright © 2017年 mouweng. All rights reserved.//#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib.}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}- (void) touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ NSString *strURL = @"/Users/apple/Desktop/QQ20170826-185026.mp4"; NSURL *url = [NSURL fileURLWithPath:strURL]; // _playerController = [[MPMoviePlayerController alloc] initWithContentURL:url];// _playerController.view.frame = self.view.bounds;// [_playerController prepareToPlay];//视频处理的编解码的过程// [self.view addSubview:_playerController.view]; //播放试图控制器 _playerView = [[MPMoviePlayerViewController alloc] initWithContentURL:url]; _playerView.view.frame = self.view.bounds; [self.view addSubview:_playerView.view];}@end
阅读全文
0 0
- IOS 实现音频视频播放器功能
- iOS音频视频播放
- android音频视频播放器
- 音频视频播放器 on PPC
- fedora安装音频视频播放器
- iOS 开发之音频视频后台播放
- 音频视频播放
- HTML5之音频视频播放器(1)
- iOS播放器常用功能
- iOS实现录音与播放功能
- 音频视频播放汇总
- fedora15 播放音频视频
- 音频视频后台播放
- 音频视频多媒体播放
- html5---音频视频播放
- 音频视频后台播放
- JavaScript -- 音频视频的播放
- h5音频视频播放
- MYSQL常用数值函数
- LintCode 150 : Fast Power
- 桶排序笔记
- NCURSES库若干问题研究
- Java 性能优化的五大技巧
- IOS 实现音频视频播放器功能
- Linux安装nmap命令
- Ubuntu 16.04 执行 apt update 更新时报错的解决办法
- mysql性能优化笔记(1) 建表原则和字段设计
- Java常用排序算法/程序员必须掌握的8大排序算法 2015/07/14 | 分类: 基础技术 | 0 条评论 | 标签: 排序 分享到: 原文出处: csdn-a125138 本文由网络资料整理而来
- MyBatis Generator 配置详解
- SELECT LAST_INSERT_ID() 的使用和注意事项
- SqlQuery
- super()和 this() 的区别