=====================================================

最简单的基于FFmpeg的移动端例子系列文章列表:

最简单的基于FFmpeg的移动端例子:Android HelloWorld

最简单的基于FFmpeg的移动端例子:Android 视频解码器

最简单的基于FFmpeg的移动端例子:Android 视频解码器-单个库版

最简单的基于FFmpeg的移动端例子:Android 推流器

最简单的基于FFmpeg的移动端例子:Android 视频转码器

最简单的基于FFmpeg的移动端例子附件:Android 自带播放器

最简单的基于FFmpeg的移动端例子附件:SDL Android HelloWorld

最简单的基于FFmpeg的移动端例子:IOS HelloWorld

最简单的基于FFmpeg的移动端例子:IOS 视频解码器

最简单的基于FFmpeg的移动端例子:IOS 推流器

最简单的基于FFmpeg的移动端例子:IOS 视频转码器

最简单的基于FFmpeg的移动端例子附件:IOS自带播放器

最简单的基于FFmpeg的移动端例子:Windows Phone HelloWorld

=====================================================

前几篇文章记录的都是IOS下基于FFmpeg的多媒体程序。本文记录一个IOS下自带的视频播放器。相比于移植FFmpeg来说,IOS自带的多媒体框架播放视频要简单很多——只需要调用几个接口就可以了。

源代码

项目的源代码位于ViewController.m文件中,内容如下所示。

/*** 最简单的IOS视频播放器* Simplest IOS Player** 雷霄骅 Lei Xiaohua* leixiaohua1020@126.com* 中国传媒大学/数字电视技术* Communication University of China / Digital TV Technology* http://blog.csdn.net/leixiaohua1020** 本程序是IOS上最简单的视频播放器。* This software is the simplest Video Player on IOS.**/#import "ViewController.h"
#import <MediaPlayer/MediaPlayer.h>@interface ViewController ()@property (nonatomic,strong) MPMoviePlayerController *moviePlayer;//视频播放控制器@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.[self.moviePlayer play];[self addNotification];}-(void)dealloc{//移除所有通知监控[[NSNotificationCenter defaultCenter] removeObserver:self];
}-(MPMoviePlayerController *)moviePlayer{if (!_moviePlayer) {NSString *urlStr=[[[NSBundle mainBundle]resourcePath] stringByAppendingPathComponent:@"resource.bundle/war3end.mp4"];NSURL *url=[NSURL fileURLWithPath:urlStr];_moviePlayer=[[MPMoviePlayerController alloc]initWithContentURL:url];_moviePlayer.view.frame=self.view.bounds;_moviePlayer.view.autoresizingMask=UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;[self.view addSubview:_moviePlayer.view];}return _moviePlayer;
}-(void)addNotification{NSNotificationCenter *notificationCenter=[NSNotificationCenter defaultCenter];[notificationCenter addObserver:self selector:@selector(mediaPlayerPlaybackStateChange:) name:MPMoviePlayerPlaybackStateDidChangeNotification object:self.moviePlayer];[notificationCenter addObserver:self selector:@selector(mediaPlayerPlaybackFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:self.moviePlayer];}-(void)mediaPlayerPlaybackStateChange:(NSNotification *)notification{switch (self.moviePlayer.playbackState) {case MPMoviePlaybackStatePlaying:NSLog(@"正在播放...");break;case MPMoviePlaybackStatePaused:NSLog(@"暂停播放.");break;case MPMoviePlaybackStateStopped:NSLog(@"停止播放.");break;default:NSLog(@"播放状态:%li",self.moviePlayer.playbackState);break;}
}-(void)mediaPlayerPlaybackFinished:(NSNotification *)notification{NSLog(@"播放完成.%li",self.moviePlayer.playbackState);
}- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}@end

运行结果

App在手机上运行后的结果如下图所示。程序运行后,会自动播放resource.bundle中的war3end.mp4文件。

下载

simplest ffmpeg mobile

项目主页

Github:https://github.com/leixiaohua1020/simplest_ffmpeg_mobile

开源中国: https://git.oschina.net/leixiaohua1020/simplest_ffmpeg_mobile

SourceForge:https://sourceforge.net/projects/simplestffmpegmobile/

CSDN工程下载地址:http://download.csdn.net/detail/leixiaohua1020/8924391

本解决方案包含了使用FFmpeg在移动端处理多媒体的各种例子:

[Android]
simplest_android_player: 基于安卓接口的视频播放器
simplest_ffmpeg_android_helloworld: 安卓平台下基于FFmpeg的HelloWorld程序
simplest_ffmpeg_android_decoder: 安卓平台下最简单的基于FFmpeg的视频解码器
simplest_ffmpeg_android_decoder_onelib: 安卓平台下最简单的基于FFmpeg的视频解码器-单库版
simplest_ffmpeg_android_streamer: 安卓平台下最简单的基于FFmpeg的推流器
simplest_ffmpeg_android_transcoder: 安卓平台下移植的FFmpeg命令行工具
simplest_sdl_android_helloworld: 移植SDL到安卓平台的最简单程序
[IOS]
simplest_ios_player: 基于IOS接口的视频播放器
simplest_ffmpeg_ios_helloworld: IOS平台下基于FFmpeg的HelloWorld程序
simplest_ffmpeg_ios_decoder: IOS平台下最简单的基于FFmpeg的视频解码器
simplest_ffmpeg_ios_streamer: IOS平台下最简单的基于FFmpeg的推流器
simplest_ffmpeg_ios_transcoder: IOS平台下移植的ffmpeg.c命令行工具
simplest_sdl_ios_helloworld: 移植SDL到IOS平台的最简单程序

最简单的基于FFmpeg的移动端例子附件:IOS自带播放器相关推荐

  1. 最简单的基于FFmpeg的移动端例子:IOS 视频转码器

    ===================================================== 最简单的基于FFmpeg的移动端例子系列文章列表: 最简单的基于FFmpeg的移动端例子:A ...

  2. 最简单的基于FFmpeg的移动端例子:IOS 视频解码器

    ===================================================== 最简单的基于FFmpeg的移动端例子系列文章列表: 最简单的基于FFmpeg的移动端例子:A ...

  3. 最简单的基于FFmpeg的移动端例子:IOS HelloWorld

    ===================================================== 最简单的基于FFmpeg的移动端例子系列文章列表: 最简单的基于FFmpeg的移动端例子:A ...

  4. 最简单的基于FFmpeg的移动端例子附件:SDL Android HelloWorld

    ===================================================== 最简单的基于FFmpeg的移动端例子系列文章列表: 最简单的基于FFmpeg的移动端例子:A ...

  5. 最简单的基于FFmpeg的移动端例子:Android 视频转码器

    ===================================================== 最简单的基于FFmpeg的移动端例子系列文章列表: 最简单的基于FFmpeg的移动端例子:A ...

  6. 最简单的基于FFmpeg的移动端例子:IOS 推流器

    https://blog.csdn.net/leixiaohua1020/article/details/47072519 http://www.cocoachina.com/articles/118 ...

  7. 最简单的基于FFmpeg的移动端例子:Windows Phone HelloWorld

    ===================================================== 最简单的基于FFmpeg的移动端例子系列文章列表: 最简单的基于FFmpeg的移动端例子:A ...

  8. 最简单的基于FFmpeg的移动端例子:Android 推流器

    ===================================================== 最简单的基于FFmpeg的移动端例子系列文章列表: 最简单的基于FFmpeg的移动端例子:A ...

  9. 最简单的基于FFmpeg的移动端例子:Android 视频解码器-单个库版

    ===================================================== 最简单的基于FFmpeg的移动端例子系列文章列表: 最简单的基于FFmpeg的移动端例子:A ...

最新文章

  1. 如何优雅安全地在深层数据结构中取值
  2. 面试小结之Elasticsearch篇
  3. juniper路由器主备路由引擎主机名配置
  4. rp-provide-from-last
  5. 【推荐系统】AAAI2022推荐系统论文集锦
  6. 找出最具竞争力的子序列_力扣300——最长上升子序列
  7. 镭波笔记本安装linux,镭波笔记本windows7旗舰版系统下载与安装教程
  8. java爬虫爬取主流房屋网站
  9. 【爬虫剑谱】二卷2章 实战篇-精美动漫图片爬取并保存
  10. 如何用敏捷搞垮一个IT团队?
  11. 【漏洞预警】Intel爆CPU设计问题,导致win和Linux内核重设计(附测试poc)
  12. 168.Excel Sheet Column Title
  13. python云计算1_python云计算服务器
  14. 超像素分割SLIC与SLIC0(SLIC Zero)算法的区别
  15. 文件上传2-搭建uploads靶场
  16. 如何保持session一致性?
  17. 17个国内外手机APP应用开发平台推荐
  18. 为什么粘贴是crtl+v
  19. jeecg-boot:将单表列表页作为弹框,并且传递参数到解决方案(场景商品到明细信息维护)
  20. Python转换表情符号 emoji

热门文章

  1. jsp中9个隐藏对象
  2. Intel微处理器列表_百度百科
  3. 我的大学——不忍舍弃的回忆(3)
  4. Zend Studio 4.0.2试用手迹
  5. UVA10608 Friends【并查集】
  6. 九章算术卷第九 句股
  7. 常见空指针异常及其避免
  8. 命名集 —— 名字结构
  9. 历法 —— 十二地支与二十八星宿
  10. python基础教程第三版电子版-《python基础教程第三版》PDF高清完整版-免费下载...