iOS-音频和视频

一、视频

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

MPMoviePlayerController播放本地视频资源

NSString *path = [[NSBundle mainBundle]pathForResource:@"root" ofType:@"mp4"];
NSURL *url = [NSURL fileURLWithPath:path];
_playcontroller = [[MPMoviePlayerController alloc]initWithContentURL:url];
_playcontroller.view.frame = CGRectMake(0, 100, 320, 300);
[_playcontroller play];
[self.view addSubview:_playcontroller.view];

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

NSURL *url = [NSURL URLWithString:@"http://localhost:8080/media/root.mp4"];
_playcontroller.view.frame = CGRectMake(0, 100, 320, 300);[_playcontroller play];
[self.view addSubview:_playcontroller.view];

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

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(removeMedia) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
}
-(void)removeMedia
{
    [_playcontroller.view removeFromSuperview];
}

MPMoviePlayerViewController播放视频资源

NSURL *url = [NSURL URLWithString:@"http://localhost:8080/media/root.mp4"];
MPMoviePlayerViewController *player = [[MPMoviePlayerViewController alloc]initWithContentURL:url];
[self presentViewController:player animated:YES completion:nil];

效果图:

MPMoviePlayerViewController如何让视频横屏播放。

横屏播放,需要继承MPMoviePlayerViewController这个类。假设myMPMoviePlayerViewController继承这个类。

我们需要在myMPMoviePlayerViewController中实现两个方法。

-(BOOL)shouldAutorotate
{
    return YES;
}
-(NSUInteger)supportedInterfaceOrientations
{
    return  UIInterfaceOrientationMaskLandscape;
}

然后在实现下面代码:

NSURL *url = [NSURL URLWithString:@"http://localhost:8080/media/root.mp4"];
myMPMoviePlayerViewController *player = [[myMPMoviePlayerViewController alloc]initWithContentURL:url];
[self presentViewController:player animated:YES completion:nil];

效果图为:

二、音频

音频的话,我们需要框架AVFoundation.framework

音频的话,一般需要使用进度条显示音频播放的进度。

@interface ViewController : UIViewController
{
    //音频播放器
    AVAudioPlayer * _audioPalyer;
    IBOutlet UISlider *_slider;
    float currentProgress;
    NSTimer *_timer;
}
- (IBAction)playButton:(id)sender;
- (IBAction)stopButton:(id)sender;

@end
- (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];
    }
}

效果图:

时间: 2024-08-06 04:56:54

iOS-音频和视频的相关文章

iOS音频AAC视频H264编码 推流最佳方案

项目都是个人的调研与实验,可能很多不好或者不对的地方请多包涵. 1    功能概况 *  实现音视频的数据的采集 *  实现音视频数据的编码,视频编码成h264,音频编码成aac *  实现音视频数据的发布,将编码好的音视频数据传输到服务器 2 视频和音频编码方案 视频硬编码需要使用AVAssetWriter,但是他只支持直接将数据编码成h264并写入文件,不提供接口中途获取视频数据处理,我们需要在保存的文件中读出数据 据顶采用软编码,主流开源编解码器Xvid,x264,ffmpeg,Xvid是

iOS音频与视频的开发(二)- 使用AVAudioRecorder进行录制音频

1.使用AVAudioRecorder录制视频 AVAudioRecorder与AVAudioPlayer类似,它们都属于AVFoundation的类.AVAudioRecorder的功能类似于一个录音器,使用AVAudioRecorder录制音频十分简单,当程序控制AVAudioRecorder对象创建完成之后,可以调用AVAudioRecorder的如下方法进行录制. 1.prepareToRecord:准备开始录制.调用record方法时,如果音频还没有准备好,程序会隐式先执行该方法. 2

iOS 音频视频制作

--iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操作都提供了多套API.在今天的文章中将会对这些内容进行一一介绍: 音频 音效 音乐 音频会话 录音 音频队列服务 视频 MPMoviePlayerController MPMoviePlayerViewController AVPlayer 摄像头 UIImagePicker

iOS音频播放、录音、视频播放、拍照、视频录制

随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操作都提供了多套API.在今天的文章中将会对这些内容进行一一介绍: 音频 音效 音乐 音频会话 录音 音频队列服务 视频 MPMoviePlayerController MPMoviePlayerViewController AVPlayer 摄像头 UIImagePickerController拍照

iOS音频视频开发起始点

Audio & Video Starting Point Multimedia technologies in iOS let you access the sophisticated audio and video capabilities of iPhone, iPad, and iPod touch. Specialized classes let you easily add basic features such as iPod library playback and movie c

笔记- iphone手机音频AAC视频H264推流(一) iphone手机推流最佳方案

这几个月一直在做iphone手机音视频的东西,由于个人比较懒,所以一直没整理,现在闲的蛋疼,并且以后项目要搁置了,在这里记录一下我做的iphone手机推流的东西. 项目都是个人的调研与实验,可能很多不好或者不对的地方请多包涵. 1    功能概况 *  实现音视频的数据的采集 *  实现音视频数据的编码,视频编码成h264,音频编码成aac *  实现音视频数据的发布,将编码好的音视频数据传输到服务器 2 视频和音频编码方案 视频硬编码需要使用AVAssetWriter,但是他只支持直接将数据编

使用系统类播放音频和视频

iOS的系统类中提供了用于播放音频和视频的类,支持常见的多媒体格式 ? 框架支持:MediaPlayer.framework, ? ?AVFoundation.framework 1.音频 类: AVAudioPlayer ? 支持格式:?AAC,AMR,ALAC,iLBC,IMA4,PCM,MP3 初始化方法: initWithContentOfURL: error: initWithDate: error:? ? file type hint:是一个在AVMEdiiaFormat.h中声明的

iOS音频处理

ios音频处理 1. iOS底层音频处理技术(带源代码) http://www.cocoachina.com/ios/20111122/3563.html 2.ios 音频入门 http://blog.sina.com.cn/s/blog_7a162d000101b9w3.html 3.IOS 音频API介绍 http://www.cnblogs.com/kenshincui/p/4186022.html#audioQueueServices 4. FFMPEG 入门简介 http://blog

iOS开发~视频处理

iOS开发有几个难点地方,又能体现水平,就是音频,视频,摄像头的处理. 下面总结一些内容: //目前国内的奇文,帮助大家了解音频,视频,摄像头的处理 http://www.cnblogs.com/kenshincui/p/4186022.html#!comments 摄像照相视频音频处理 SCRecorder - SCRecorder 短视频录制. VideoPushDemo - 视频剪辑 视频特效制作1 视频特效制作2. LLSimpleCamera - A simple, customiza

摘录 :iOS下音视频通信的实现-基于WebRTC

原文出自:http://www.cocoachina.com/ios/20170306/18837.html ,为了方便记忆,转载,如原作者不同意转载,邮件通知,立即删除 前言: WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,简而言之它是一个支持网页浏览器进行实时语音对话或视频对话的技术. 它为我们提供了视频会议的核心技术,包括音视频的采集.编解码.网络传输.显示等功能,并且还支持跨平台:windows,linux,mac,android,i