IOS视频播放器VKVideoPlayer简单教程

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

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用法教程

播放直播流

   
  1. VKVideoPlayerViewController *viewController = [[VKVideoPlayerViewController alloc] init];
  2. [self presentModalViewController:viewController animated:YES];
  3. [viewController playVideoWithStreamURL:[NSURL URLWithString:@"http://content.viki.com/test_ios/ios_240.m3u8"]];

常用方法

   
  1. self.player = [[VKVikiVideoPlayer alloc] initWithVideoPlayerView:[[VKVikiVideoPlayer alloc] init]];
  2. self.player.delegate = self;
  3. [self.view addSubview:self.player]
  4.  
  5. VKVideoPlayerView有简单的方法添加到视图.
  6.  
  7. - (void)addSubviewForControl:(UIView *)view;
  8. - (void)addSubviewForControl:(UIView *)view toView:(UIView*)parentView;
  9. - (void)addSubviewForControl:(UIView *)view toView:(UIView*)parentView forOrientation:(UIInterfaceOrientationMask)orientation;
  10.  
  11. //展示按钮
  12. [self.player.view addSubviewForControl:newButton toView:self.player.view forOrientation:UIInterfaceOrientationMaskLandscape];
  13.  
  14.  
  15. VKVideoPlayer的属性.
  16.  
  17. //这个属性可以改变的行为取向。如果UIViewController只有Portrait mode,把它设置为YES可以旋转屏幕。
  18. @property (nonatomic, assign) BOOL forceRotate;
  19.  
  20.  
  21. //当你旋转播放屏幕时,视频播放器视图将是这个大小。
  22. @property (nonatomic, assign) CGRect landscapeFrame;
  23. This property is used when rotate to Landscape by forceRotate. Video player view will be this frame size.
  24.  
  25.  关于字母
  26.  
  27.  要自定义字幕,有一些方法。改变字体大小,使用vksharedutility。有3个值。
  28.  // value accepts @0, @1, @2 or @3;
  29.  // @0 : Tiny
  30.  // @1 : Medium
  31.  // @2 : Large
  32.  // @3 : Huge
  33.  [VKSharedUtility setValue:@1 forKey:kVKSettingsSubtitleSizeKey];
  34.  
  35.  //或者你可以重写下面的方法来自定义标题样式。
  36.  
  37. - (DTCSSStylesheet*)captionStyleSheet:(NSString*)color {
  38. float fontSize = 1.3f;
  39. float shadowSize = 1.0f;
  40.  
  41. switch ([[VKSharedUtility setting:kVKSettingsSubtitleSizeKey] integerValue]) {
  42. case 1:
  43. fontSize = 1.5f;
  44. break;
  45. case 2:
  46. fontSize = 2.0f;
  47. shadowSize = 1.2f;
  48. break;
  49. case 3:
  50. fontSize = 3.5f;
  51. shadowSize = 1.5f;
  52. break;
  53. }
  54.  
  55. DTCSSStylesheet* stylesheet = [[DTCSSStylesheet alloc] initWithStyleBlock:[NSString stringWithFormat:@"body{
  56. text-align: center;
  57. font-size: %fem;
  58. font-family: Helvetica Neue;
  59. font-weight: bold;
  60. color: %@;
  61. text-shadow: -%fpx -%fpx %fpx #000, %fpx -%fpx %fpx #000, -%fpx %fpx %fpx #000, %fpx %fpx %fpx #000;
  62. vertical-align: bottom;
  63. }", fontSize, color, shadowSize, shadowSize, shadowSize, shadowSize, shadowSize, shadowSize, shadowSize, shadowSize, shadowSize, shadowSize, shadowSize, shadowSize]];
  64. return stylesheet;
  65. }

代理方法

   
  1. //vkvideoplayer已委托协议vkvideoplayerdelegate。您可以使用它为您的应用程序的日志记录或其他控件。
  2.  
  3. //这种方法被称为在改变状态之前。如果你还没有,你可以阻止视频播放器的状态改变。
  4. - (BOOL)shouldVideoPlayer:(VKVideoPlayer*)videoPlayer changeStateTo:(VKVideoPlayerState)toState;
  5.  
  6. //这种方法是在改变状态之前。
  7. - (void)videoPlayer:(VKVideoPlayer*)videoPlayer willChangeStateTo:(VKVideoPlayerState)toState;
  8.  
  9. //这种方法被称为改变状态。
  10. - (void)videoPlayer:(VKVideoPlayer*)videoPlayer didChangeStateFrom:(VKVideoPlayerState)fromState;
  11.  
  12. //此方法在载入视频之前被调用。如果视频不应该播放,你可以在它的交通流量之前阻止。
  13. - (BOOL)shouldVideoPlayer:(VKVideoPlayer*)videoPlayer startVideo:(id)track;
  14.  
  15. //这种方法是在开始视频之前调用的。你不能在这里停止视频。
  16. - (void)videoPlayer:(VKVideoPlayer*)videoPlayer willStartVideo:(id)track;
  17.  
  18. //这种方法是在启动视频后调用的。
  19. - (void)videoPlayer:(VKVideoPlayer*)videoPlayer didStartVideo:(id)track;
  20.  
  21. //在播放视频时,这种方法被称为每一秒。
  22. - (void)videoPlayer:(VKVideoPlayer*)videoPlayer didPlayFrame:(id)track time:(NSTimeInterval)time lastTime:(NSTimeInterval)lastTime;
  23.  
  24. //这种方法被称为完成播放视频。你可以开始播放下一段视频在这里。
  25. - (void)videoPlayer:(VKVideoPlayer*)videoPlayer didPlayToEnd:(id)track;
  26.  
  27. //这种方法被称为当用户做了一些行动。
  28. - (void)videoPlayer:(VKVideoPlayer*)videoPlayer didControlByEvent:(VKVideoPlayerControlEvent)event;
  29.  
  30. //这种方法被称为当用户更改的底部标题语言。
  31. - (void)videoPlayer:(VKVideoPlayer*)videoPlayer didChangeSubtitleFrom:(NSString*)fronLang to:(NSString*)toLang;
  32.  
  33. //这种方法被称为旋转动画之前。
  34. - (void)videoPlayer:(VKVideoPlayer*)videoPlayer willChangeOrientationTo:(UIInterfaceOrientation)orientation;
  35.  
  36. //这种方法被称为旋转动画后。
  37. - (void)videoPlayer:(VKVideoPlayer*)videoPlayer didChangeOrientationFrom:(UIInterfaceOrientation)orientation;
  38.  
  39. //调用此方法时发生错误。
  40. - (void)handleErrorCode:(VKVideoPlayerErrorCode)errorCode track:(id)track customMessage:(NSString*)customMessage;
  41.  
Viki视频播放器 源码VKVideoPlayerVKVideoPlayer是一个经过严格测试的Viki视频播放器,是一个可以处理视频播放的所有技术细节的简单插件。默认情况下,该库使用AVPlayer和AVPlayerItem类在VKVideoPlayerView上播放视频。它是通过进入一个实施VKVideoPlayerTrackProtocol协议的跟踪对象来实现的。默认视频播放器会创建AVPlayer和AVPlayerItem对象来播放视频。 具有一些改进功能:完全自定义UI;没有全屏限制(可设置任意大小);可以显示字幕(支持SRT)并可自定义;支持HTTP Live Streaming协议;支持方向改变,即使开启方向锁定;支持Bulletproof事件机制,可以很容易地集成视频广告等功能;可为日志需求进行delegate callbacks。 立即下载

相关推荐

vk-video-plugin:vk.com 视频内容的 serviio 插件

vk.com 视频内容的 Serviio 插件 这个是来做什么的? [Serviio] ( ) 是一个免费的媒体服务器。 它允许您将媒体文件(音乐、视频或图像)流式传输到连接的家庭网络上的渲染器设备(例如电视机、蓝光播放器、游戏机或手机)。 此插件允许您从 [vk.com] ( ) 公共页面流式传输视频内容。 如何使用它? 首先,您需要下载并安装 [serviio] ( )。 下载插件脚本。 您也可以从 [serviio 官方论坛主题] ( ) 下载。 将下载的插件脚本 (vk.groovy) 放入 serviio 的 plugins 文件夹(默认: C:/Program Files/Serviio/plugins ) 运行ServiioConsole.exe ,转到Library —> Online Sources并单击“添加”按钮。 对于源类型,选择“Web 资源”。

Vk视频最小值「Vk video minimizer」-crx插件

此扩展自动将Vk提要中的视频降至最低,这超出了屏幕范围。 使用此扩展程序,您可以省去不得不重新导航VK新闻源以停止视频的时间。 您现在可以向前滚动,扩展程序会自动将您的视频最小化。 更新信息:版本0.0.3:暂停的视频没有最小化。 注意:可能会出现滞后现象。 支持语言:English

vk_video_samples:Vulkan视频样本

VK_VULKAN_VIDEO 该项目是一个Vulkan视频示例应用程序,它演示了端到端全vulkan对h.264 / 5压缩视频内容的处理。 该应用程序使用硬件加速解码器对h.264 / 5压缩内容进行解码,解码后的YCbCr帧由Vulkan Graphics处理,然后通过Vulkan WSI呈现。 当前,该示例应用程序支持Linux和Windows10操作系统。 特征 使用h.264(AVC)或h.265(HEVC)压缩格式从.mp4,.mkv .mov和其他视频容器中提取(通过FFMPEG的DEMUX)压缩视频。 硬件视频解码器将纹理处理为可以从Vulkan采样器(纹理)直接采样的Vulkan视频图像。 使用对解码的图像进行采样时,将YCbCr(YUV)图像转换为RGB 使用Vulkan WSI显示后处理的视频帧。 提供与每帧参数内联的h.264 / 5 SPS / P

IOS视频播放器VKVideoPlayer

VKVideoPlayer 是一个在 Viki iOS 应用里使用的视频播放器。主要特性:完全可定制的 UI 任何大小乃至全屏 支持字幕显示 可定制的字幕显示风格 支持 HTTP 直播流 支持屏幕方向调整 Bulletproof event machine to easily integrate features like video ads Lots of delegate call

6653

EIL MU Analysis Report (ZRPP143)

************************************************************************ * Program     : ZRPP143         REL : 4.6c    Author : Dainel Jiang   * * Created     : 03-11-2011      APP : All     Type

Gangelwn 3万+

视频播放器调研

ijkplayer: 简介:一个基于 FFmpeg n2.6 的开源 Android/iOS 视频播放器

oGuoDu12的博客 639

war3第一视角合集

war3第一视角合集

cnbird's blog 2万+

VK Cup 2015 - Qualification Round 1 A. Reposts(map最大连续长度)

A. Reposts time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output One day Polycarp published a funny picture in a s

KongWX 3万+

推荐理由

在这个项目中,【VK Video Downloader】以其精巧的设计和用户至上的理念,深刻理解并解决了特定场景下的用户痛点,是追求高效与高质量观影体验用户的不二之选。...

gitblog_00787的博客 5778

Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition) A B C D 模拟

链接:戳这里 A. Little Artem and Presents time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output Little Artem got n stones on his birthday and

Cross 87万+

【亲测免费】 推荐:VK_VULKAN_VIDEO——高效视频编解码的未来之选

推荐:VK_VULKAN_VIDEO——高效视频编解码的未来之选 在当今数字媒体时代,高效、高质量的视频处理技术是不可或缺的。对于开发者而言,【VK_VULKAN_VIDEO】开源项目正是一把开启高效视频编解码大门的钥匙。它利用Vulkan API的强大性能,展示了全面的视频编解码解决方案,特别适合那些寻求前沿图形和视频处理技术的应用开发。 项目介绍 【VK_VULKAN_VIDEO】由两个核心部...

gitblog_00098的博客 3236

Override VK_TTALK & VK_TEND

转自: http://kevinyisuihan.blog.163.com/blog/static/404793222008812942364/ When working on a project that involved creating a custom dialer for Windows Mobile devices, one of the more important tasks

2552

【亲测免费】 VK视频下载器开源项目教程

``` VK-Video-Downloader/ ├── README.md ├── src/ │ ├── main.js │ ├── config.js │ ├── utils/ │ │ ├── downloader.js │ │ ├── converter.js │ ├── assets/ │ │ ├── logo.png │ │ ├── sty...

gitblog_00886的博客 9688

VK-Video-Downloader:突破平台限制的VK视频获取工具

在数字内容日益丰富的今天,VK平台上的视频资源常常因平台限制而无法保存。VK-Video-Downloader作为一款专注于VK视频下载的开源工具,通过本地解析技术,让用户能够轻松获取并保存所需视频内容,所有操作均在本地完成,确保隐私安全的同时支持多种视频质量选择。 ## 价值定位:VK-Video-Downloader的核心优势 ### 本地解析技术保障隐私安全 VK-Video-Downl

gitblog_00725的博客 706

VK视频下载完整指南:轻松保存任何VK视频内容

还在为无法保存VK上的精彩视频而烦恼吗?今天要介绍的这款VK Video Downloader工具,让你能够轻松下载VK平台上的任何视频内容,完全免费且操作简单。 ## 🎯 为什么你需要这款下载工具? VK作为俄罗斯最大的社交平台,拥有海量的优质视频内容。然而平台本身并不提供下载功能,这让用户面临诸多不便: - **网络限制**:没有网络就无法观看心仪视频 - **内容消失**:喜欢的视频

gitblog_00214的博客 1525

VK视频下载器:轻松保存VKontakte视频的完整指南

你是否经常在VKVKontakte)上观看精彩的视频内容,却因为网络缓冲、无法离线观看而烦恼?VK作为俄罗斯最大的社交平台,拥有海量的视频资源,但官方并未提供直接的下载功能。本文将为你详细介绍VK视频下载器这个开源工具,让你轻松解决视频下载难题,保存珍贵回忆和教育内容。 ## 为什么需要VK视频下载工具? VK平台虽然内容丰富,但在视频播放体验上存在诸多不便。许多用户反映观看视频时经常遇到网

gitblog_00788的博客 407

【亲测免费】 探索未来图形处理:VK_VULKAN_VIDEO 开源项目

探索未来图形处理:VK_VULKAN_VIDEO 开源项目 项目介绍 VK_VULKAN_VIDEO 是一个开源项目,它提供了两个基于 Vulkan 视频的示例应用,一个是视频解码器(VK_VIDEO_DECODE),另一个是视频编码器(VK_VIDEO_ENCODE)。这两个应用都能独立编译,为开发者提供了一整套在硬件加速下处理视频流的工具。 项目技术分析 利用先进的 Vulkan 图形 API...

gitblog_00001的博客 896

VK视频下载神器:一键保存高清视频的完整指南

还在为VK上的精彩视频无法离线保存而烦恼吗?想要永久珍藏那些珍贵的回忆视频却总是找不到简单有效的方法?今天我要为你介绍一款真正实用的VK视频下载工具——VK Video Downloader,它能让你轻松保存任何VK视频到本地设备! ## 💔 那些让你抓狂的视频保存困境 **场景一:旅行视频只能在线观看的无奈** 想象一下,你在VK上记录了整个欧洲之旅的美好瞬间,但当你想把这些视频制作成纪念

gitblog_01167的博客 352
上一篇: ios新手必看之手势
下一篇: 实现tableView和collectionView的相互关联方法
旺仔小小酥
博客等级 码龄11年 2粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值