几种播放视频文件的方式(五) —— 基于MobileVLCKit框架的视频播放(一)

版本记录

版本号 时间
V1.0 2017.12.30

前言

iOS系统中有很多方式可以播放视频文件,这里我们就详细的说明下播放视频文件的原理和实例。希望能帮助到大家,大家能喜欢。感兴趣的可以参考上面几篇。
1. 几种播放视频文件的方式(一) —— 总结播放视频的几种方式(一)
2. 几种播放视频文件的方式(二) —— 基于MediaPlayer框架的视频播放(一)
3. 几种播放视频文件的方式(三) —— 基于AVFoundation框架视频播放(一)
4. 几种播放视频文件的方式(四) —— 基于AVKit框架的视频播放(一)

MobileVLCKit框架

在开始之前先给出教程,也可以直接点击MobileVLCKit静态库下载链接进行下载。GitHub上也有人基于MobileVLCKit框架封装的一个基于VLC的播放器


Introduction - 简介

VLCKit是在Mac OS X和iOS上的libvlc外部接口的Objective-C封装。

它包括播放,播放列表,流媒体和转码的基本类。 做简单的媒体播放器(相当于QuickTime播放器或MPlayer OS X)和做基于QuickTime的播放器难易程度一样;因此,这真的很容易。 MobileVLCKit是专门针对iOS平台的一个子集,通过播放列表,元数据处理和网络流式传输,实现完整的播放体验。 如果您需要媒体数据库,MediaLibraryKit将在很短时间内满足你的需求。


Building the framework for macOS - 在macOS上编译框架

这将自动获取和构建libvlc以及随附的类。 另外,为了获得更多的选择,你可以在终端上手动运行buildVLCKit.sh脚本。 添加-h标志来查看所有可用的选项。


Building the framework for iOS - 在iOS平台编译框架

这将自动获取和构建libvlc以及它的依赖和伴随的类。

如果你想建立一个适用于模拟器和设备的库:

  • 执行./buildMobileVLCKit.sh
  • 使用xcode命令行工具来构建通用库:lipo -create Release-iphoneos/libMobileVLCKit.a Release-iphonesimulator/libMobileVLCKit.a -o libMobileVLCKit.a

或者构建支持设备和模拟器的静态框架:

  • ./buildMobileVLCKit.sh -f

注意:MobileVLCKit Xcode项目还允许您在构建脚本成功一次后构建动态框架(需要iOS 8+)。

警告:使用静态模式时,当前的构建过程会生成一个非常大的库。 初始大小的90%将在链接上被剥离。

依存关系警告:构建的脚本自动获取依赖关系并在本地构建它们,请注意,通过Homebrew进行的系统级安装可能会干扰本地构建脚本。 如果遇到与autoconf相关的错误,请尝试从PATH中删除/ usr / local,擦除sourceTree并开始构建。


Building the framework for tvOS - 在tvOS中构建框架

这将自动获取和构建libvlc以及它的依赖和伴随的类。

如果你想建立一个适用于模拟器和设备的库:

  • 执行./buildMobileVLCKit.sh
  • 使用xcode命令行工具来构建通用库:lipo -create Release-appletvos/libTVVLCKit.a Release-appletvsimulator/libTVVLCKit.a -o libTVVLCKit.a

或者构建支持设备和模拟器的静态框架:

  • ./buildMobileVLCKit.sh -t -f

注意:MobileVLCKitXcode项目还允许您在构建脚本成功一次后构建一个动态框架。

警告:使用静态模式时,当前的构建过程会生成一个非常大的库。 初始大小的90%将在链接上被剥离。

依存关系警告:构建的脚本自动获取依赖关系并在本地构建它们;请注意,通过Homebrew进行的系统级安装可能会干扰本地构建脚本。 如果遇到与autoconf相关的错误,请尝试从PATH中删除/ usr / local,擦除sourceTree并开始构建。


Basic usage in your application - 在您app中的基本使用

看一下代码

// Set up a videoView by hand. You can also do that in the nib file
   videoView = [[VLCVideoView alloc] initWithFrame:[[window contentView] bounds]];
   [[window contentView] addSubview:videoView];
   [videoView setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable];
  
   // Init the player object
   player = [[VLCMediaPlayer alloc] initWithVideoView:videoView];
 
   [player setMedia:[VLCMedia mediaWithPath:@"/to/my/movie"]];
   [player play];

Sample code - 示例代码

我们提供适用于iOS和OS X的示例代码。

1. Examples_OSX

Examples_OSX包含3个不同的项目。

  • BasicPlayerWithPlaylist:这个相当不错。 拖放文件,点击播放/暂停,看他们按照你想要的顺序在同一个窗口中播放。
  • FlashVideoDownloader:这个例子说明了如何部署VLC的URL解析机制来访问实际播放的媒体以及如何存储它。
  • iPodConverterVLCKit包括流媒体和转码功能,包括一些预定义的配置文件。 在这个示例中,您将看到如何使用它们。 在指定的区域放置一个文件。 点击转换,查看正在转换的文件,包括进度条。

2. Examples_iOS

Examples_iOS包括两个使用Xcode 5和iOS 7开发的不同项目。 只需稍作修改,他们也将在iOS 5和iOS 6上工作。

  • SimplePlayback:它和它的名字一样,很简单。 启动应用程序,观看从我们的服务器上的实时流传输到您的iOS模拟器或设备的文件。
  • DropIn-Player:这是一个更高级的示例项目,实现了一个基本的视图控制器,可以嵌入到你自己的应用程序中。 它允许任何类型的媒体播放,字幕处理,多音轨处理,纵横比自定义,播放位置操作和显示,音量。 所有这些,都是在一个自包含的类和一个单独的xib文件中实现的。

Are there apps actually deploying VLCKit on OS X and iOS? - 是否有应用程序实际在OS X和iOS上部署VLCKit?

下面列出几个app

随意按字母顺序添加您的应用程序。 请注意,我们没有列出违反VLCKit许可条款的应用程序 - 遗憾的是,有不少。


Compilation tips - 编译提示

  • 如果您不关心最新的内容,请尝试使用stable分支,例如2.1- stable
  • 构建树有什么可以被描述为Git子模块,他们有时可能会失去同步。 如果MobileVLCKit / ImportedSources / vlc中的代码不同步,或者您需要强制重建,则可能需要删除contrib / iPhoneOS-armv7 * /
  • 在某些情况下,libtoolize可能会干扰构建工具。 您可能需要在PATH的开头添加$ PATH / MobileVLCKit / ImportedSources / vlc / extras / tools / build / bin并使用它。

Related


External Links

后记

未完,待续~~~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容