MobileVLCKit的使用

VLC 是一款强大的全平台播放器, 几乎支持所有的音频、视频格式文件播放, 官网地址:http://www.videolan.org/, 在iOS 中也可以集成 VLC 的 SDK 进行开发, 使用之前需要先去官网下载 SDK, 然后编译成 iOS 中使用的库文件才能使用, 这种集成方法在编译的过程中需要 VPN 翻墙进行联网编译, 如果网速不好或者不稳定, 很容易编译出错, 如果网速好, 可以按照 wiki 的说明去编译: https://wiki.videolan.org/iOSCompile.
  还有一种简单的集成方式, 不用编译, 直接下载编译好的MobileVLCKit.framework就可以了. 下面开始一步一步做.

一.下载MobileVLCKit.framework

下载地址:http://nightlies.videolan.org/build/ios/.
打开页面之后, 拉到网页最下面可以看到最新的MobileVLCKit.framework, 不过最新的在使用时会报错(以后更新后不知道还会不会报错, 如果更新了可以自己再尝试最新的), 可以下载4月16日的, 如下图:


下载 MobileVLCKit.framework

下载完解压后, 里面的MobileVLCKit.framework就是我们要使用的 framework 了, 如下图:


解压后文件目录
二. iOS工程中集成MobileVLCKit.framework

新建工程, 将MobileVLCKit.framework导入工程并添加相关的依赖框架, 依赖框架有:

  • AudioToolbox.framework
  • VideoToolbox.framework
  • CoreMedia.framework
  • CoreVideo.framework
  • CoreAudio.framework
  • AVFoundation.framework
  • MediaPlayer.framework
  • libstdc++.6.0.9.tbd
  • libiconv.2.tbd
  • libc++.1.tbd
  • libz.1.tbd
  • libbz2.1.0.tbd

导入全部框架后, 如下图:


导入框架

导入后, 在ViewController.m中引人头文件: #import <MobileVLCKit/MobileVLCKit.h>, 如果没有报错, 说明集成成功.

三. 测试

ViewController.m中引人头文件进行测试, 主要代码如下: 

UIView *videoView = [[UIView alloc] initWithFrame:CGRectMake(0, 50, self.view.bounds.size.width, 200)];
[self.view addSubview:videoView];
VLCMediaPlayer *player = [[VLCMediaPlayer alloc] initWithOptions:nil];
self.player = player;
self.player.drawable = videoView;
self.player.media = [VLCMedia mediaWithPath:[[NSBundle mainBundle] pathForResource:@"test" ofType:@"wmv"]];
[self.player play];

运行结果如下:


运行结果

如果要获取播放视频需要的总时间, 可以从VLCMedia类中的length属性获取, 如下:

NSInteger *AllTime = self.media.length.intValue;

如果要获取视频的当前播放进度, 需要给player设置delegate, 然后在代理方法中通过playertime属性获取当前进度, 获取当前播放进度的代理方法如下:

- (void)mediaPlayerTimeChanged:(NSNotification *)aNotification{
    //获取当前的播放进度
    NSInteger *currentProgress = self.player.time.intValue;
}

如果需要控制播放进度(比如快进或回放), 可以设置player类的position属性, position范围为0.0~1.0之间, 如下:

//设置播放进度, 0.0~1.0
[self.player setPosition:0.5];

如果需要获取视频的缩略图, 则需要用到VLCMediaThumbnailer类, 并设置代理进行监听获取, 如下:

//初始化并设置代理
VLCMediaThumbnailer *thumbnailer = [VLCMediaThumbnailer thumbnailerWithMedia:media andDelegate:self];
self.thumbnailer = thumbnailer;
//开始获取缩略图
[self.thumbnailer fetchThumbnail];

代理方法如下:

//获取缩略图超时
- (void)mediaThumbnailerDidTimeOut:(VLCMediaThumbnailer *)mediaThumbnailer{
    NSLog(@"getThumbnailer time out.");
}
//获取缩略图成功
- (void)mediaThumbnailer:(VLCMediaThumbnailer *)mediaThumbnailer didFinishThumbnail:(CGImageRef)thumbnail{
    //获取缩略图
    UIImage *image = [UIImage imageWithCGImage:thumbnail];
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
MobileVLCKit是一个功能强大的媒体播放框架,可以轻松地将视频和音频播放功能集成到iOS和tvOS应用程序中。下面是MobileVLCKit的一些使用详解: 1. 导入MobileVLCKit库 首先,需要将MobileVLCKit库导入到Xcode项目中。可以通过CocoaPods或手动添加库的方式进行导入。如果使用CocoaPods,只需要在Podfile文件中添加以下代码: ``` pod 'MobileVLCKit' ``` 然后在终端中运行`pod install`命令即可。 如果手动导入库,需要从VLC官网下载MobileVLCKit库并将其添加到Xcode项目中。 2. 创建VLCMediaPlayer对象 要使用MobileVLCKit播放视频和音频,需要创建一个VLCMediaPlayer对象。可以通过以下代码创建一个VLCMediaPlayer对象: ``` VLCMediaPlayer *mediaPlayer = [[VLCMediaPlayer alloc] initWithOptions:nil]; ``` 3. 设置媒体源 在创建VLCMediaPlayer对象后,需要设置要播放的媒体源。可以通过以下代码设置媒体源: ``` NSURL *mediaURL = [NSURL URLWithString:@"http://example.com/video.mp4"]; VLCMedia *media = [VLCMedia mediaWithURL:mediaURL]; [mediaPlayer setMedia:media]; ``` 这里将一个URL作为媒体源,并将其设置为VLCMediaPlayer对象的媒体属性。 4. 播放媒体 设置完媒体源后,就可以开始播放媒体了。可以通过以下代码启动播放: ``` [mediaPlayer play]; ``` 5. 控制播放 MobileVLCKit提供了一些方法来控制媒体播放,例如暂停、恢复、停止和调整音量等。以下是一些示例代码: ``` // 暂停播放 [mediaPlayer pause]; // 恢复播放 [mediaPlayer play]; // 停止播放 [mediaPlayer stop]; // 调整音量 [mediaPlayer setVolume:0.5]; ``` 6. 监听播放状态 可以通过VLCMediaPlayer的`state`属性获取当前播放状态。还可以通过监听`VLCMediaPlayerStateChangedNotification`通知来获取播放状态的变化。 ``` [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mediaPlayerStateChanged:) name:VLCMediaPlayerStateChangedNotification object:nil]; - (void)mediaPlayerStateChanged:(NSNotification *)notification { VLCMediaPlayer *mediaPlayer = notification.object; switch (mediaPlayer.state) { case VLCMediaPlayerStateStopped: // 媒体已停止 break; case VLCMediaPlayerStatePaused: // 媒体已暂停 break; case VLCMediaPlayerStatePlaying: // 媒体正在播放 break; default: break; } } ``` 7. 自定义UI MobileVLCKit还提供了一些自定义UI的选项,例如自定义播放器控件和字幕渲染。可以通过设置VLCMediaPlayer的`drawable`属性来自定义播放器控件。可以通过设置VLCMediaPlayer的`subtitleDisplay`属性来自定义字幕渲染。 以上是MobileVLCKit的一些使用详解,希望对您有所帮助。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值