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。

- 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;
- }