iOS-音频和视频
一、视频
- 视频播放器需要添加MediaPlayer.framework.
- 视频播放主要提供了两个类,一个MPMoviePlayerController, 另一个是MPMoviePlayerViewController.
- 视频资源可以从本地获得,也可以从服务器获得
MPMoviePlayerController播放本地视频资源

MPMoviePlayerController播放网络资源(服务器为自己搭建,地址不可使用)

可以加一个通知,在视频播放完毕的时候发出通知,将视图从界面上移除。

MPMoviePlayerViewController播放视频资源

效果图:

MPMoviePlayerViewController如何让视频横屏播放。
横屏播放,需要继承MPMoviePlayerViewController这个类。假设myMPMoviePlayerViewController继承这个类。
我们需要在myMPMoviePlayerViewController中实现两个方法。

然后在实现下面代码:

效果图为:

二、音频
音频的话,我们需要框架AVFoundation.framework
音频的话,一般需要使用进度条显示音频播放的进度。
|
1
2
3
4
5
6
7
8
9
10
11
12
|
@interface ViewController : UIViewController{ //音频播放器 AVAudioPlayer * _audioPalyer; IBOutlet UISlider *_slider; float currentProgress; NSTimer *_timer;}- (IBAction)playButton:(id)sender;- (IBAction)stopButton:(id)sender;@end |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. _slider.value = 0.0;}- (IBAction)playButton:(id)sender{ _timer = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(moveSlide) userInfo:nil repeats:YES]; NSString *path = [[NSBundle mainBundle]pathForResource:@"1" ofType:@"mp3"]; NSData *data = [NSData dataWithContentsOfFile:path]; _audioPalyer = [[AVAudioPlayer alloc]initWithData:data error:nil]; [_audioPalyer play]; _slider.maximumValue = _audioPalyer.duration; [_slider addTarget:self action:@selector(changeSlide) forControlEvents:UIControlEventValueChanged];}-(void)changeSlide{ _audioPalyer.currentTime = _slider.value;}-(void)moveSlide{ _slider.value = _audioPalyer.currentTime;}- (IBAction)stopButton:(id)sender{ UIButton *button = (UIButton *)sender; if (button.tag == 0) { [_audioPalyer pause]; [button setTitle:@"继续播放" forState:UIControlStateNormal]; button.tag = 1; [_timer invalidate]; _timer = nil; } else { [_audioPalyer play]; [button setTitle:@"暂停" forState:UIControlStateNormal]; button.tag = 0; [_slider addTarget:self action:@selector(changeSlide) forControlEvents:UIControlEventValueChanged]; }} |
效果图:

iOS-音频和视频的更多相关文章
- iOS音频AAC视频H264编码 推流最佳方案
iOS音频AAC视频H264编码 推流最佳方案 项目都是个人的调研与实验,可能很多不好或者不对的地方请多包涵. 1 功能概况 * 实现音视频的数据的采集 * 实现音视频数据的编码,视频编码成 ...
- iOS音频与视频的开发(一)-使用AVAudioPlayer播放音乐、使用AVPlayerViewController播放视频
iOS的多媒体支持非常强大,它提供了多套支持多媒体的API,无论是音频.视频的播放,还是录制,iOS都提供了多种API支持.借助于这些API的支持,iOS应用既可以查看.播放手机相册中的照片.视频,也 ...
- iOS音频与视频的开发(二)- 使用AVAudioRecorder进行录制音频
1.使用AVAudioRecorder录制视频 AVAudioRecorder与AVAudioPlayer类似,它们都属于AVFoundation的类.AVAudioRecorder的功能类似于一个录 ...
- 《转》iOS音频视频初级开发
代码改变世界 Posts - 73, Articles - 0, Comments - 1539 Cnblogs Dashboard Logout HOME CONTACT GALLERY RSS ...
- 说下 winOS / IOS / android /Linux 视频、音频 编码解码问题
最近有朋友遇到一个问题, ios 上传视频文件,想在本地压缩下,然后再上传到服务器. 问有没有什么 视频处理的库, 最近Khronos的webgl 支持HTML5 ,(原理 WebGL 是openGL ...
- iOS音频播放、录音、视频播放、拍照、视频录制
随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操 ...
- iOS 音频视频图像合成那点事
代码地址如下:http://www.demodashi.com/demo/13420.html 人而无信不知其可 前言 很久很久没有写点什么了,只因为最近事情太多了,这几天终于闲下来了,趁此机会,记录 ...
- iOS 音频视频制作
--iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制, ...
- 如何让音频跟视频在ios跟android上自动播放
如何让音频跟视频在ios跟android上自动播放 <audio autoplay ><source src="audio/alarm1.mp3" type=&q ...
- H5音频和视频
使用媒体标签最大的缺点在于缺少编解码器的支持一.浏览器支持性检测检测浏览器是否支持audio元素或video元素最简单的方式就是用脚本动态创建它,然后检测特定函数是否存在 var hasVideo=! ...
随机推荐
- android 修改framework下资源文件后如何编译
在framework/base/core/res/res 下添加资源文件后需要先编译资源 然后编译framework 才可正常引用 进入项目根目录 cd frameworks/base/core/re ...
- ExtJs
ExtJS是一种主要用于创建前端用户界面,是一个与后台技术无关的前端ajax框架. 概念 1.ExtJS可以用来开发RIA也即富客户端的AJAX应用,是一个用javascript写的,主要用 ...
- 登录锁定状态下Win7关机技巧总结
登录锁定状态下Win7关机技巧总结 一般在锁定状态都是有个关闭电脑的图标的.但是如果你的系统没有,那么怎么样关机呢,所谓的锁定状态通常是指电脑在登录界面,具体的实现如下,感兴趣的朋友可以参考下 现在大 ...
- php中的json_encode()和json_decode()函数的一些说明
一,json语法( php中的json_decode($json)中的$json要符合json语法格式 ) ① JSON可以表示三种类型的值 1,简单值.包括整型,字符串型,布尔值和null.例如:5 ...
- 剑指offer一:二维数组中的查找
题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路: 这是一个顺序二维 ...
- 一步一步学习underscore的封装和扩展方式
前言 underscore虽然有点过时,这些年要慢慢被Lodash给淘汰或合并. 但通过看它的源码,还是能学到一个库的封装和扩展方式. 第一步,不污染全局环境. ES5中的JS作用域是函数作用域. 函 ...
- 关于autoptr
参考自: http://www.cppblog.com/expter/archive/2009/03/29/78270.html auto_ptr是什么. 解释1.auto_ptr是一个管理指针的对象 ...
- JS事件委托学习(转)
JS 事件委托就是利用冒泡原理,把事件加到父级上触发,执行效果. 好处: 1.提高性能 2.新添加的元素还会有之前的事件 <</</</</li></ ...
- <a>每次点击都会让浏览器重新打开一个窗口问题
<a> 标签的 target 属性规定在何处打开链接文档.如果在一个 <a> 标签内包含一个 target 属性,浏览器将会载入和显示用这个标签的 href 属性命名的.名称与 ...
- Jqplot 使用总结之一(线条及节点颜色)
好不容易抽出时间将Jqplot做下最后的总结,下面通过四个例子来学习Jqplot的一些常见技巧:示例1. 设置线条颜色(包括背景色及线条颜色的批量赋值) <!DOCTYPE html> & ...