IOS视频播放器VKVideoPlayer

VKVideoPlayer 是一个在 Viki iOS 应用里使用的视频播放器。

主要特性:

完全可定制的 UI

任何大小乃至全屏

支持字幕显示

可定制的字幕显示风格

支持 HTTP 直播流

支持屏幕方向调整

Bulletproof event machine to easily integrate features like video ads

Lots of delegate callbacks for your own logging requirements

VKVideoPlayer是一个经过严格测试的Viki视频播放器,是一个可以处理视频播放的所有技术细节的简单插件。默认情况下,该库使用AVPlayer和AVPlayerItem类在VKVideoPlayerView上播放视频。它是通过进入一个实施VKVideoPlayerTrackProtocol协议的跟踪对象来实现的。默认视频播放器会创建AVPlayer和AVPlayerItem对象来播放视频。

具有一些改进功能:完全自定义UI;没有全屏限制(可设置任意大小);可以显示字幕(支持SRT)并可自定义;支持HTTP Live Streaming协议;支持方向改变,即使开启方向锁定;支持Bulletproof事件机制,可以很容易地集成视频广告等功能;可为日志需求进行delegate callbacks。

iOS视频播放器VKVideoPlayer

VKVideoPlayer用法教程

播放直播流

VKVideoPlayerViewController *viewController = [[VKVideoPlayerViewController alloc] init];

[self presentModalViewController:viewController animated:YES];

[viewController playVideoWithStreamURL:[NSURL URLWithString:@”http://content.viki.com/test_ios/ios_240.m3u8“]];

常用方法

self.player = [[VKVikiVideoPlayer alloc] initWithVideoPlayerView:[[VKVikiVideoPlayer alloc] init]];

self.player.delegate = self;

[self.view addSubview:self.player]

VKVideoPlayerView有简单的方法添加到视图.

  • (void)addSubviewForControl:(UIView *)view;
  • (void)addSubviewForControl:(UIView )view toView:(UIView)parentView;
  • (void)addSubviewForControl:(UIView )view toView:(UIView)parentView forOrientation:(UIInterfaceOrientationMask)orientation;

//展示按钮

[self.player.view addSubviewForControl:newButton toView:self.player.view forOrientation:UIInterfaceOrientationMaskLandscape];

VKVideoPlayer的属性.

//这个属性可以改变的行为取向。如果UIViewController只有Portrait mode,把它设置为YES可以旋转屏幕。

@property (nonatomic, assign) BOOL forceRotate;

//当你旋转播放屏幕时,视频播放器视图将是这个大小。

@property (nonatomic, assign) CGRect landscapeFrame;

This property is used when rotate to Landscape by forceRotate. Video player view will be this frame size.

关于字母

要自定义字幕,有一些方法。改变字体大小,使用vksharedutility。有3个值。

// value accepts @0, @1, @2 or @3;

// @0 : Tiny

// @1 : Medium

// @2 : Large

// @3 : Huge

[VKSharedUtility setValue:@1 forKey:kVKSettingsSubtitleSizeKey];

//或者你可以重写下面的方法来自定义标题样式。

  • (DTCSSStylesheet*)captionStyleSheet:(NSString*)color {

    float fontSize = 1.3f;

    float shadowSize = 1.0f;

switch ([[VKSharedUtility setting:kVKSettingsSubtitleSizeKey] integerValue]) {

case 1:

fontSize = 1.5f;

break;

case 2:

fontSize = 2.0f;

shadowSize = 1.2f;

break;

case 3:

fontSize = 3.5f;

shadowSize = 1.5f;

break;

}

DTCSSStylesheet* stylesheet = [[DTCSSStylesheet alloc] initWithStyleBlock:[NSString stringWithFormat:@”body{\

text-align: center;\

font-size: %fem;\

font-family: Helvetica Neue;\

font-weight: bold;\

color: %@;\

text-shadow: -%fpx -%fpx %fpx #000, %fpx -%fpx %fpx #000, -%fpx %fpx %fpx #000, %fpx %fpx %fpx #000;\

vertical-align: bottom;\

}”, fontSize, color, shadowSize, shadowSize, shadowSize, shadowSize, shadowSize, shadowSize, shadowSize, shadowSize, shadowSize, shadowSize, shadowSize, shadowSize]];

return stylesheet;

}

代理方法

//vkvideoplayer已委托协议vkvideoplayerdelegate。您可以使用它为您的应用程序的日志记录或其他控件。

//这种方法被称为在改变状态之前。如果你还没有,你可以阻止视频播放器的状态改变。

- (BOOL)shouldVideoPlayer:(VKVideoPlayer*)videoPlayer changeStateTo:(VKVideoPlayerState)toState;

//这种方法是在改变状态之前。

- (void)videoPlayer:(VKVideoPlayer*)videoPlayer willChangeStateTo:(VKVideoPlayerState)toState;

//这种方法被称为改变状态。

- (void)videoPlayer:(VKVideoPlayer*)videoPlayer didChangeStateFrom:(VKVideoPlayerState)fromState;

//此方法在载入视频之前被调用。如果视频不应该播放,你可以在它的交通流量之前阻止。

- (BOOL)shouldVideoPlayer:(VKVideoPlayer*)videoPlayer startVideo:(id)track;

//这种方法是在开始视频之前调用的。你不能在这里停止视频。

- (void)videoPlayer:(VKVideoPlayer*)videoPlayer willStartVideo:(id)track;

//这种方法是在启动视频后调用的。

- (void)videoPlayer:(VKVideoPlayer*)videoPlayer didStartVideo:(id)track;

//在播放视频时,这种方法被称为每一秒。

- (void)videoPlayer:(VKVideoPlayer*)videoPlayer didPlayFrame:(id)track time:(NSTimeInterval)time lastTime:(NSTimeInterval)lastTime;

//这种方法被称为完成播放视频。你可以开始播放下一段视频在这里。

- (void)videoPlayer:(VKVideoPlayer*)videoPlayer didPlayToEnd:(id)track;

//这种方法被称为当用户做了一些行动。

- (void)videoPlayer:(VKVideoPlayer*)videoPlayer didControlByEvent:(VKVideoPlayerControlEvent)event;

//这种方法被称为当用户更改的底部标题语言。

- (void)videoPlayer:(VKVideoPlayer*)videoPlayer didChangeSubtitleFrom:(NSString*)fronLang to:(NSString*)toLang;

//这种方法被称为旋转动画之前。

- (void)videoPlayer:(VKVideoPlayer*)videoPlayer willChangeOrientationTo:(UIInterfaceOrientation)orientation;

//这种方法被称为旋转动画后。

- (void)videoPlayer:(VKVideoPlayer*)videoPlayer didChangeOrientationFrom:(UIInterfaceOrientation)orientation;

//调用此方法时发生错误。

- (void)handleErrorCode:(VKVideoPlayerErrorCode)errorCode track:(id)track customMessage:(NSString*)customMessage;

代码下载地址

本文由51ios原创,转载请注明转载自http://www.51ios.net/thirdlibs/5692.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-12 02:03:05

IOS视频播放器VKVideoPlayer的相关文章

cocos2dx ios 视频播放器 2.x到3.x版本都可以使用

在cocos2dx版本中使用视频播放器的话 需要以下步骤 1.在写一个.mm的文件 我这里的mm叫IOSPlayVedio这个 头文件定义这个 static void playOnLineVideo4IOS(char *pszVideoUrl); .mm里面写 void IOSPlayVedio::playOnLineVideo4IOS(char *pszVideoUrl) { NSString * strVideo = [NSString stringWithUTF8String:pszVid

ios 视频播放器MPMoviePlayerController

这个东西和之前的音频播放差不多, 也是先需要导入系统框架MediaPlayer.framework 才能使用到MPMoviePlayerController 的文件中导入相应的头文件 初始化:这里就有些不一样了MPMoviePlayerController是可以通过远程url初始化的, 例如: MPMoviePlayerController *moviePlayer = [ [ MPMoviePlayerController alloc]initWithContentURL:[NSURL url

iOS 视频播放器单例类

#import <Foundation/Foundation.h> #import <MediaPlayer/MediaPlayer.h> @interface XHMoviePlayer : MPMoviePlayerController -(void)playWithUrl:(NSString *)url; -(instancetype)init; +(instancetype)defaultMoviePlayer; -(void)playWithFilePath:(NSStr

Android进阶:自定义视频播放器开发(下)

上一篇文章我们主要讲了视频播放器开发之前需要准备的一个知识,TextureView,用于对图像流的处理.这篇文章开始构建一个基础的视频播放器. 一.准备工作 在之前的文章已经说过了,播放器也是一个view,我们要在这个view上播放视频流.所以我们要自定义一个简单的viewgroup,比如继承FrameLayout.还出就是布局简单,其他控件可以往上面添加.大家见过的视频播放器的控制器都是放在视频的上方的.这样就是用FrameLayout布局是最好的. class SmallVideoPlaye

Android进阶:十一、视频播放器初体验

上一篇文章我们主要讲了视频播放器开发之前需要准备的一直个知识,TextureView,用于对图像流的处理.这篇文章开始构建一个基础的视频播放器. 一.准备工作 在之前的文章已经说过了,播放器也是一个view,我们要在这个view上播放视频流.所以我们要自定义一个简单的viewgroup,比如继承FrameLayout.还出就是布局简单,其他控件可以往上面添加.大家见过的视频播放器的控制器都是放在视频的上方的.这样就是用FrameLayout布局是最好的. class SmallVideoPlay

iOS 视频播放第三方库VKVideoPlayer推荐 By HL

VKVideoPlayer是一个经过严格测试的Viki视 频播放器,是一个可以处理视频播放的所有技术细节的简单插件.默认情况下,该库使用AVPlayer和AVPlayerItem类在 VKVideoPlayerView上播放视频.它是通过进入一个实施VKVideoPlayerTrackProtocol协议的跟踪对象来实现的.默 认视频播放器会创建AVPlayer和AVPlayerItem对象来播放视频. 具有一些改进功能: 完全自定义UI:没有全屏限制(可设 置任意大小): 可以显示字幕(支持S

ios媒体视频播放器应用项目

源码WSY_XMHelper,基于ReactiveCocoa和MVVM架构的流媒体视频播放器应用,此项目为一个完整项目.基于MVVM架构, 集成流媒体视频下载及播放,支持下拉刷新,上拉加载等.如果你想学习MVVM,此项目为一个很好的例子. 项目源码下载:http://code.662p.com/view/9891.html<ignore_js_op> <ignore_js_op> 详细说明:http://ios.662p.com/thread-2344-1-1.html

iOS媒体视频播放器应用源码

源码WSY_XMHelper,基于ReactiveCocoa和MVVM架构的流媒体视频播放器应用,此项目为一个完整项目.基于MVVM架构, 集成流媒体视频下载及播放,支持下拉刷新,上拉加载等.如果你想学习MVVM,此项目为一个很好的例子. 源码下载: http://code.662p.com/view/9891.html 2015-1-7 15:12 上传 详细说明:http://ios.662p.com/thread-2344-1-1.html

iOS 调用音乐播放以及视频播放器

音乐播放 NSString *path = [[NSBundle mainBundle] pathForResource:@"预谋" ofType:@"mp3"]; if (path) { NSURL *url = [NSURL fileURLWithPath:path]; player= [[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil]; [player setDelegate:self]; pl