几种播放视频文件的方式(五) —— 基于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上编译框架

  • 克隆http://code.videolan.org/videolan/VLCKit.git
  • 打开VLCKit.xcodeproj
  • 确保Build libvlc target被选择
  • 编译工程
  • 选择VLCKittarget并编译

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


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

  • 拷贝 http://code.videolan.org/videolan/VLCKit.git
  • 打开您最喜爱的终端应用程序,如Terminal.appiTerm 2,并导航到您的checkout
  • 执行./buildMobileVLCKit.sh
  • 检查-h获取更多选项

这将自动获取和构建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中构建框架

  • 克隆http://code.videolan.org/videolan/VLCKit.git
  • 打开您最喜爱的终端应用程序,如Terminal.appiTerm 2,并导航到您的checkout
  • 执行./buildMobileVLCKit.sh -t
  • -h中获取额外选项

这将自动获取和构建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:这个相当不错。 拖放文件,点击播放/暂停,看他们按照你想要的顺序在同一个窗口中播放。
几种播放视频文件的方式(五) —— 基于MobileVLCKit框架的视频播放(一)_第1张图片
  • FlashVideoDownloader:这个例子说明了如何部署VLC的URL解析机制来访问实际播放的媒体以及如何存储它。
几种播放视频文件的方式(五) —— 基于MobileVLCKit框架的视频播放(一)_第2张图片
  • iPodConverterVLCKit包括流媒体和转码功能,包括一些预定义的配置文件。 在这个示例中,您将看到如何使用它们。 在指定的区域放置一个文件。 点击转换,查看正在转换的文件,包括进度条。
几种播放视频文件的方式(五) —— 基于MobileVLCKit框架的视频播放(一)_第3张图片

2. Examples_iOS

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

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

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

下面列出几个app

  • Amahi for iOS by Amahi
  • Blackbox by Rotapp
  • Dreambox-Live by Rotapp (discontinued)
  • Fleex player by fleex.tv
  • iMagneto
  • Korri player by Korrisoft
  • Lunettes by the VideoLAN team
  • Ma TV Star by Korrisoft
  • Movie Player 2 by Dominic Rodemer Online Media
  • Player multimédia TNT by Korrisoft
  • VLC for iOS by the VideoLAN team
  • VLC Streamer by HobbyistSoftware

随意按字母顺序添加您的应用程序。 请注意,我们没有列出违反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

  • Compiling VLC on MacOS X

External Links

  • Introduction to The Objective-C 2.0 Programming Language
  • Interface Builder
  • Mobile VLCKit for Xamarin.iOS

后记

未完,待续~~~

几种播放视频文件的方式(五) —— 基于MobileVLCKit框架的视频播放(一)_第6张图片

你可能感兴趣的:(几种播放视频文件的方式(五) —— 基于MobileVLCKit框架的视频播放(一))