参考资料
http://www.onlinedown.net/soft/987730.htm
https://blog.csdn.net/yiwei151/article/details/78415771
https://blog.csdn.net/dark00800/article/details/56015917
简介
Avpro Video是一款由RenderHeads出品的可以在Unity上安装使用的万能多平台视频播放插件,Avpro Video支持Windows,linux,ios,mac,Android等多平台万能播放。不仅可以实现基础的播放功能,还能实现进度条拖放和速率调整,播放4K视频,360度全景视频等,并对不同的平台进行了优化。
下载链接
https://pan.baidu.com/s/1Q8fKDZOHbv7dIwZzMtIpMA 密码:myhv
http://www.onlinedown.net/soft/987730.htm
基于UGUI的视频播放功能
将下载的unitypackage导入工程,可以看到以下几个文件夹
创建Media Player对象,在Hierarchy视图右击或者选择菜单栏的GameObject菜单,然后选择AVPro Video->Media Player
Media Player对象包括基础设置- Media Properties(视频的图像和音频设置)
- Global Settings(全局设置)
- Preview(预览,只在Play时有效)
- Events(回调事件)
- Platform(多平台重写)
- About(插件信息)
其中我们一般需要进行设置的只有基础设置和Events。
- Absolute Path Or URL :绝对路径或者URL,path写服务器的路径,但是记得写视频的后缀名,这个时候就可以在线播放视频了
- Relative To Project Folder:相对于项目文件夹的路径,这个因为打包之后项目的相对路径就变了,需要不同平台,设置不同参数
- Relative To StreamingAssets Folder:这是视频文件的最佳和最常见的位置。这个文件夹位于。“Assets/streamingassets/”,如果它不存在,你必须创建它。复制到这个文件夹的文件不会被Unity导入或处理,但是它们会自动复制到构建中。
- Relative To Data Folder:数据文件夹是由Unity指定的
- Relative To Peristent Data Folder:持久数据文件夹由Unity指定
.
3. 设置Medie Player的参数
- 注意一下的是Video Location这个选项
- 推荐使用StreamingAssets文件夹
- 需要在项目的Assets目录下新建一个StreamingAssets文件夹,然后将视频拖进去,StreamingAssets中的文件不会被打包到程序资源包中,而是作为一个独立的目录自动生成在输出的程序目录的Data目录下
- Recent选项可以快速选择之前选择过的文件
- Browse选项可以快速选择电脑中的文件
4.创建AVPro Video对象,在Hierarchy视图右击或者选择菜单栏的GameObject菜单,然后选择UI->AVPro Video
参数这么设置就行
OK 视频就可以播放了
如何在手机上在线播放视频
同样的步骤添加Media Player组件之后,设置Media Player组件的参数
将VideoLocation改为URL,VideoPath改为你服务器的路径,但记得写视频的后缀。这个时候就可以在PC上播放在线视频了
安卓设置:
当然如果我们想要在安卓上播放的还需要更改一些设置;
在这个切换为安卓平台的,同时需要在PlayerSetting中设置一些参数。
因为这个插件支持的最低Level为16,所以需要改为16,同时修改下面的参数
这样我们就可以在安卓上播放在线视频了。
插件的官方文档翻译
将下载的unitypackage导入工程,导入后会看到几个demo和插件的说明文档AVProVideo-UserManual。详细的插件用法包括视频格式的支持和API在说明文档中都有。
下面就是文档的内容,因为是全英文的,就给翻译了一下
内容
- 介绍
1.1 产品特点
1.2 试用版
1.3 版权说明 - 系统要求
2.1 平台不支持 - 安装
3.1 平台的说明
3.2 试用版和水印
3.3 视频文件位置
3.4 流文件
3.5 虚拟现实的说明
3.6 Hap编解码器的说明
3.7 幻灯片的说明 - 快速入门示例
4.1 快速启动从Unity开始
4.2 使用Prefabs快速启动全屏幕视频播放器
4.3 使用组件快速启动3D网格视频演示 - 使用
5.1 使用指南
5.2 不受支持的平台
5.3 组件
5.3.1 Media Player 组件
5.3.2 Display IMGUI 组件
5.3.3 Display uGUI 组件
5.3.4 Apply To Mesh / Material 组件
5.4 脚本
5.4.1 Namespace
5.4.2 Media Player Scripting
5.4.3 Events - 资源文件
6.1 Demos
6.2 Prefabs
6.3 Scripts - 支持的媒体格式
7.1 Android
7.2 iOS,tvOS, and OS X
7.3 Windows - 脚本参考
- 支持
- 关于 RenderHeads Ltd
附录A - FAQ
附录B - 版本历史
附录C - 路线图
1.介绍
AVPro视频是来自渲染头的最新视频插件,它之前开发过。AVPro QuickTime和AVPro Windows媒体插件用于Unity。在新一代的ugins中,我们的目标是创建一个易于使用的跨平台视频播放系统,该系统使用每个平台的特性。
1.1 产品特点
- Version for iOS,tvOS,OS X,Android,Windows,Windows Phone and UMP
- One API for video playback on all supported platforms
- 4K Video support (on supported hardware)
- VR support (equirectangular hardware)
- Fast fiexible video playback
- Unity Pro 4.6.9 and 5.x supproted
- Free watermaked trial version avaiable(download here)
- Fast native Direct3D,OpedGL and Metal texture updates
- Linear and Gamma colour spaces supported
- Graceful fallback in editor
- Unity 4.5 uGUI support
- Easy to use ,drag and drop components
- Streaming video from URL (when supported by platform)
1.2 试用版
我们提供了一个无限试用版的AVPro视频,可以从我们的网站http://renderheads.com/product/av和亲视频中下载。试用版没有遗漏的特性或时间限制,但它确实对渲染的输出应用了水印。水印确实有很小的性能影响,这在高分辨率的视频中是非常明显的。在Windows中,如果在没有显示水印的情况下使用GPU解码路径,那么每隔几秒,视频的大小就会缩小。
1.3 媒体版权
BigBuckBunny-360p30.mp4-(c)版权2008,Blender基金会
/www.bigbuckbunny.org。
BigBuckBunny_720p30.mp4-(c)版权2008,Blender基金会
/www.bigbuckbunny.org
SampleSphere.mp4-(c)版权Daniel Arnett,
2.系统要求
- Unity 5.x or Unity Pro 4.6 and above
- iOS 8.1 and above
- tvOS 9.0(Apple TV 4th Gen) and above
- OS X 10.7 and above,64-bit only
- Android 4.1 (Jelly Bean ,API level 16) and above(ARM7 and x86)
- Windows XP and above(32-bit and 64-bit)
- Windows 8.0 and above(32-bit and 64-bit)
- Windows Phone UMP 8.1(32-bit and 64-bit)
- Window Desktop UMP 8.1(32-bit ,64-bit and ARM)
- Universal Windows Platform 10(32-bit,64-bit and ARM)
2.1不支持的平台
- WebGL*
- WebPlayer
- Linux desktop
- Game COnsoles(XBox,PS4 etc)
*= 即将来临
3. 安装
1.打开一个新的Unity会话(清除任何锁定的插件文件)
2.将unitypackage文件导入到Unity项目中。如果提示升级一些脚本,请单击Yes。
3.1 平台说明
3.1.1 Android
- 这个插件需要API的等级最低16
- 使用的是MediaPlayer API
- 如果你想支持流媒体,别忘了设置“互联网接入”选项。播放器设置“需要”
- 对于渲染,我们支持OpenGL ES 2.0和OpenGL ES 3.0
- 支持多线程渲染
3.1.2 iOS / tvOS / Mac OS X
- 在引擎盖下,我们使用的是AVFoundation API
- 如果您想要支持流媒体,您需要显式地启用HTTP下载。对于iOS来说,这是新版本Unity的一个选项。但是对于Mac OS X和旧版本的Unity,你必须通过编辑plist文件来显式地做到这一点。下面是关于如何做到这一点的注释
- 对于Mac OS X的渲染我们支持OpenGL Legacy和OpenGL核心
- 对于iOS和tvOS的渲染我们支持OpenGL ES 2.0,OpenGL es3.0和金属
- 支持多线程渲染
3.1.3 Windows
- 在引擎盖下,我们使用媒体基金会和DirectShow APl。内侧Foundation用于Windows 8和其他版本,而DirectShow则用作Windows 7和下面的回退。
- 对于渲染我们支持Direct3D 9,Direct3D 11和OpenGL Legacy
- 支持多线程渲染
3.1.4 Windows Store / UMP / Hololens
- 对于GPU解码,将这一行添加到app.cs:
m_AppCallbacks.AddCommandLienArg(“-force-d3d11-no-snglethreaded”);
3.2 试用版和水印说明
3.2.1 水印
如果你使用的是这个插件的试用版,你会看到一个水印在视频中显示出来。水印的形式是“渲染头”的标志,它在屏幕上显示,或者是在屏幕上移动的厚水平条。AVPro视频的完整版本在任何平台上都没有水印。
如果你使用一个特定于平台的软件包(比如iOS的AVPro视频,或者Windows的AVPro视频),那么你将不会看到你购买的平台上的水印,但是你会看到其他平台上的水印。例如,如果你为iOS购买了AVPro视频,那么你仍然可以看到Unity编辑器中的水印,因为这是在windows/os X上运行的,但是当你部署到iOS设备时播放的视频将是无水的。
3.2.2 从试用版更新
如果您正在从试用版升级,请确保删除旧/资产/plugins文件夹,因为它包含试用插件,并且可能会发生冲突。您可能需要先关闭Unity,然后手动删除文件,然后重新启动Unity并重新导入软件包(因为Unity在加载后就会锁定本地插件文件)。
您可以通过在场景中添加一个MediaPlayer组件来检查您安装了哪个版本,并单击该组件的检查员的“关于”按钮。版本号显示在这个框中。
3.2.3 安装多个AVPro平台包
如果你已经安装了iOS包,那么它也会包含所有其他的插件。平台,但启用了水印。这意味着,如果您试图安装另一个AVPro包,它可能不会正确地覆盖插件。下面是如何使用iOS和Android包来解决这个问题:
1.开始一个Unity新项目
2.导入iOS的包
3.删除Plugins/Android 文件夹
a.如果你已经安装了其他的Android插件,那么你就不能删除整个文件夹,并且必须特别删除AVPro文件。查看一下AVPro原生nlugin的“helow”列表
4.导入Android包
类似操作适用于其他包
本地的pluain文件列表:
- Plugins/Android/AVProVideo.jar
- Plugins/Android/libs/armeabi-v7a/libAVProLocal.so
- Plugins/Android/libs/x86/libAVProLocal.so
- Plugins/AVProVideo.bundle
- Plugins/iOS/libAVProVideoiOs.a
- Plugins/tvOS/libAVProVideotvOS.a
- Plugins/WSA/PhoneSDK81/ARM/AVProVideo.dll
- Plugins/WSA/PhoneSDK81/x86/AVProVideo.dll
- Plugins/WSA/SDK81/ARM/AVProVideo.dll
- Plugins/WSA/SDK81/x86/AVProVideo.dll
- Plugins/WSA/SDK81/x86_64/AVProVideo.dll
- Plugins/WSA/UMP/ARM/AVProVideo.dll
- Plugins/WSA/UMP/x86/AVProVideo.dll
- Plugins/WSA/UMP/x86_64/AVProVideo.dll
- Plugins/x86/AVProVideo.dll
- Plugins/x86_64/AVProVideo.dll
3.3 Video本地文件夹
视频文件几乎可以在任何位置播放,但是我们建议在Unity项目中放置视频文件,因为这是最容易开始的文件夹。StreamingAssets是一个特殊的文件夹,在没有处理的情况下,统一复制到构建。在其他地方复制的文件将需要手动复制到构建位置。MediaPlayer组件允许您浏览视频文件,并将它们与父文件夹相关联:
视频定位字段指定视频文件的主位置,而视频路径。•菲尔德指定在何处查找与位置有关的文件。
例如,如果您的文件存储在“Assets/StreamingAssets/Video.mp4”中你会设置。定位到“相对于流媒体资产文件夹”,并将视频路径设置为“vedio.mp4”
子文件夹也支持一个视频“Assets/ StreamingAssets / myfolder /video.mp4“会有它的视频路径设置。“myfolder / video.mp4”。
您还可以指定相对于其他位置的绝对路径、url或路径:
3.3.1 相对于资源文件夹
这是视频文件的最佳和最常见的位置。这个文件夹位于。“Assets/StreamingAssets/”,如果它不存在,你必须创建它。复制到这个文件夹的文件不会被Unity导入或处理,但是它们会自动复制到构建中。
3.3.2 绝对路径或者URL
。在这里,您可以为视频文件指定一个完整的URL或绝对路径。一个URL可以是“http://myserver.com/myvideo.mp4”或“rtsp://myserver.com:8080/mystream.rtsp”,这取决于所使用的平台支持和流媒体服务。
一条绝对路径看起来是这样的:
- C:/MyFolder/AnotherFolder/MyVido.mp4(Windows)
- /Users/Mike/downloads/MyVideo.mp4(Mac/Linus)
- /Storage/SD/Videos/MyVideo.mp4(Android external SDCARD)
- /Storage/emulated/0/MyFolder/MyVideo.mp4(android local file system)
……使用绝对路径对于测试来说是很有用的,但是在部署到其他没有相同文件结构的机器时是没有用的。
3.3.3 相对于项目文件夹
项目文件夹是您的Unity项目的文件夹,所以包含资产的文件夹。图书馆和项目设置子文件夹。当vou不想在Unity资产文件夹中包含视频文件时,指定与项目文件夹相关的文件是很有用的,但是希望将它们保存在项目文件夹结构中。经常做一个叫做“视频”的子文件夹是有用的。在这个位置上的一个可能的问题是,当makina构建vour视频文件不会自动复制到构建目的地时,所以它们需要手动复制。
对于构建这个文件夹应该位于:
- Windows - 在与你的EXE相同的级别
- Mac -与应用程序包中的内容文件夹相同
- iOS 和AppName的级别相同。应用/数据文件夹
- Android - 除非你手动构建APK,否则无法访问APK
3.3.4 相对于资源文件夹
数据文件夹是由Unity指定的:
http://docs.unity3d.com/ScriptReferencelApplication-dataPath.html
把视频文件直接放到这个文件夹里是没有用的,因为它们会被统一处理成电影材质,并且会使你的项目规模膨胀。如果你想停止Unity的处理,视频文件只是简单地将扩展名重命名为Unity不理解的东西,所以“myvideo”。mp4“可以重命名为myvideo.mp4.bin”。数据文件夹中的文件(编辑器中的资产文件夹)不会自动复制到构建中,因此您必须手动复制它们。
3.3.5 相对于持续化数据的文件夹
持久数据文件夹是Unity设置的
http://docs.unity3d.com/ScriptReference/Application-persistenDataPath.html
3.4 流文件说明
AVPro视频支持多个基于平台的流媒体协议:
HTTP进步流
在为流媒体播放MP4视频时,确保它们在文件开始时使用视频头数据进行编码。你通常通过选择“快速启动”来做到这一点。QuickTime编码器,或者在FFMPEG中使用“-移动标志快速启动”,其他编码器将有类似的选项。要使用FFMPEG来准备一个MP4,您可以使用以下命令:
ffmped -i %1 -acodec copy -vcodec copy -movflags faststart %1 -streaming.mp4
。如果你是流媒体视频在URL中”mp4”部分特别有用如果你使用HLS流媒体播放从VIMEO作为MP4,你应该注意到你可以替换vith。m3u8“让它变成一个HLS流。这可能是为苹果应用商店开发应用程序,因为你需要认证(截止到2016年4月)。
3.4.1 OS X,iOS and tvOS Streaming
这个平台支持HLS流的流,通常以m3u或m3u8扩展结束。
如果vou有一个HTTPS URL,它应该可以正常工作,因为苹果信任安全连接。
如果你只能使用HTTP那么你的应用就必须有一个特殊的标志来让它使用HTTP
连接(这是苹果的安全问题)。
这个设置在iOS和tvOS的Unity播放器设置中被曝光:
该设置也在脚本API中公开:
http://docs.unity3d.com/ScriptReference/PlayerSettings.iOS-allowHTTPDownload.html
如果出于某种原因,你的Unity版本没有公开这一点,那么你将不得不手动添加它。在Unity编辑器中,你需要编辑“Unity.app/content/info”。在您的构建应用程序中,您需要编辑“您的.app/content/info.plist”。这些文件需要添加这些kevs:
NSAppTransportSecurity
NSAllowsArbitraryLoads
你可以在这里找到更多的信息:
http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/
我们还包括一个名为“PostProcessBuild”的post过程构建脚本。cs”项目•对plist进行编辑并添加该属性。目前,它只在iOS平台上设置,但你也可以在顶部编辑定义,让Mac OS X也可以。
那个pdf说明文档在这里
https://pan.baidu.com/s/12a2KM-SoJB8J3ABVPKWh5g 密码:5x7p