集成Vitamio,实现媒体播放(附电视播放Demo)

集成包下载地址:https://github.com/yixia/VitamioBundle
首先介绍一下Vitamio:Vitamio SDK for iOS 是炫一下官方推出的 iOS 平台上使用的软件开发工 具包(SDK), 为 iOS 开发者提供简单, 快捷的接口, 帮助开发者实现 iOS 平台上的媒体 播放应用.(注:Vitamio也有安卓版,感兴趣的自己去官网看安卓版的集成文件。
功能说明: 本地全媒体格式支持, 并对主流的媒体格式(mp4, avi, wmv, flv, mkv, mov, rmvb 等 )进行优化;支持广泛的流式视频格式, HLS, RTMP, HTTP Rseudo-Streaming 等;性能强大, 资源CPU/内存占用率低, 充分利用 iPhone/iPod Touch/iPad 视频硬解能力;API 简单易用, 可扩展, 高度灵活.

Vitamio 完整下载包解压缩后的目录结构:

- Vitamio/ 该目录存放 Vitamio SDK 的头文件和静态库(.a)文件.
- Doc/ 该目录存放用户手册和类参考文档.
- Demo/ 该目录主要存放1个iOS示例工程, 用于帮助开发都快速了解如何使用SDK.

下载完SDK包后进行新建项目然后进行项目的配置:
1、首先选择 Build Settings | Linking | Other Linker Flags, 将该选项的 Debug/Release 键都配置为 -ObjC .
2、然后导入所依赖的库:

- AVFoundation.framwork     音视频播放基本工具
- AudioToolbox.framwork     音频控制API
- CoreGraphics.framwork     轻量级2D渲染API
- CoreMedia.framwork        音视频低级API
- CoreVideo.framwork        视频低级API
- Foundation.framwork       基本工具
- MediaPlayer.framwork      系统播放器接口
- OpenGLES.framwork         3D图形渲染API
- QuartzCore.framwork       视频渲染输出需要
- UIKit.framwork            界面API
- libbz2.dylib              压缩工具
- libz.dylib                压缩工具
- libstdc++.dylib           C++标准库
- libiconv.dylib            字符编码转换工具

3、将下载的SDK包导入到项目中。

然后就可以撸代码了。
首先要遵循一个协议VMediaPlayerDelegate 协议。 然后使用单例类 VMediaPlayer 的类方法 +sharedInstance 获取播放器共享实例, 然后调用实例 方法 -setupPlayerWithCarrierView:withDelegate: 来注册使用播放器.
例:

 _vPlay = [VMediaPlayer sharedInstance];
 [_vPlay setupPlayerWithCarrierView:self.view withDelegate:self];

另外说明:
对于已导入到应用文档目录的媒体文件, 可以用如下方法获取其路径:

NSString *docDir = [NSString stringWithFormat:@"%@/Documents", NSHomeDirectory()];
NSString *videoUrl = [NSString stringWithFormat:@"%@/%@", docDir, @"demo.mkv"];

对于网络视频流地址, 可以直接使用:

NSString *videoUrl = @"http://meta.video.qiyi.com/242/de25dc2b5d385a8e27304d1e6dcd1a35.m3u8"

然后给播放器传入要播放的视频URL, 并告知其进行播放准备:

    NSURL *vUrl = [NSURL URLWithString:_playUrl];
    [_vPlay setDataSource:vUrl header:nil];
    [_vPlay prepareAsync];

最后实现代理方法:

// 当'播放器准备完成'时, 该协议方法被调用, 我们可以在此调用 [player start]
// 来开始音视频的播放.
- (void)mediaPlayer:(VMediaPlayer *)player didPrepared:(id)arg
{
    [player start];
}
// 当'该音视频播放完毕'时, 该协议方法被调用, 我们可以在此作一些播放器善后
// 操作, 如: 重置播放器, 准备播放下一个音视频等
- (void)mediaPlayer:(VMediaPlayer *)player playbackComplete:(id)arg
{
    [player reset];
}
// 如果播放由于某某原因发生了错误, 导致无法正常播放, 该协议方法被调用, 参
// 数 arg 包含了错误原因.
- (void)mediaPlayer:(VMediaPlayer *)player error:(id)arg
{
    NSLog(@"NAL 1RRE &&&& VMediaPlayer Error: %@", arg);
}

在停止使用播放器时应该取消注册播放器:

[_vPlay unSetupPlayer];

以上是大体的集成过程,具体详细的的请看官方的demo。
这里写图片描述
附:电视播放Demo
github下载地址:https://github.com/goingmyway1/TVPlayer

以上如果有错,请留言指出,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值