美文网首页
Unity中 视频的采集与播放 BMS

Unity中 视频的采集与播放 BMS

作者: LunarShade | 来源:发表于2017-09-19 16:48 被阅读0次

一.实验目的:

了解视频资源在Unity中的使用方式以及在Unity中实时显示视频的方法

二.实验内容:

(1) 查询有关资料,了解Unity中视频资源的使用情况,实时视频的采集与显示方法

(2) 设计一个由捕获、播放、暂停、停止按钮构成的视频播放GUI界面

(3) 点击捕获时能在游戏场景中显示计算机摄像头捕获的视频内内容

(4) 点击其它三个按钮时能播放制定的视频文件

作业提交:(1) DOC 格式的实验报告

(2) 详细说明实现视频播放功能的过程

(3) 详细说明实现视频捕获功能的过程

(4) 报告中附加相应的控制代码

三.实验步骤:

Unity播放视频有两种方法:通过GUI进行播放,或者通过摄像机扫描平面直观地进行播放。

UNITY设计非常人性化,如果将视频素材拖动到scene窗口中可以直接创建出Movie Texture对象,并且支持的文件格包括: .mov,.mpg,.mpeg,.mp4,.avi和.asf。经过测试,.MP4文件并不能在5.5版本中转化为movie texture,并且所有视频格式均需要quicktime转码的支持(查阅资料发现.ogv格式可以直接读取,但是格式工厂并不提供该格式的转换,因此考虑使用avi格式并下载quicktime进行自动转码。)

例如通过摄像机扫描平面的方法直接播放,只需在GUI的canvas界面拖动视频文件并正对摄像机/UI窗口的中间即可。

首先对Main Camera进行属性调节:将透视摄像机变为非透视摄像机,以防止画面变形;

之后在摄像机正面新建一个plane,并设置Plane的长宽为1920x1080像素(对原1x1x1的plane则调节为XScale=1.920,YScale=1.080。之后对该平面的旋转角度进行调整,防止视频出现翻转情况:

调节后对该平面添加播放脚本,播放代码如下:

usingSystem.Collections;

usingSystem.Collections.Generic;

usingUnityEngine;

publicclassMovieCaster:MonoBehaviour{

publicMovieTextureMovieTexture;

privateMeshRendererMoviePlayer;

voidStart()

{

MoviePlayer = GetComponent();

MoviePlayer.material.mainTexture = MovieTexture;

MovieTexture.loop =true;

}

voidOnGUI()

{

if(GUILayout.Button("Play"))

{

if(!MovieTexture.isPlaying)

{

MovieTexture.Play();

}

}

if(GUILayout.Button("Pause"))

{

MovieTexture.Pause();

}

if(GUILayout.Button("Stop"))

{

MovieTexture.Stop();

}

}

}

完成后将事先导入的mov格式饰品拖动到movieTexture变量中,点击播放就可以播放了。

播放界面如下:

如果要实现对摄像头的使用,同样可以对一个plane添加类似脚本完成,实验步骤与上面类似,首先创建一个新场景,然后对主摄像机正面添加一个plane,并对plane的XYZ完成旋转以使得摄像头捕捉到的画面正确显示。之后为该平面添加一段脚本,脚本代码如下:

usingSystem.Collections;

usingSystem.Collections.Generic;

usingUnityEngine;

publicclassWebCamControl:MonoBehaviour{

voidStart()

{

WebCamTexturewebcamTexture =newWebCamTexture();

for(inti = 0; i

{

if(!WebCamTexture.devices[i].isFrontFacing)

{

webcamTexture.deviceName =WebCamTexture.devices[i].name;

break;

}

}

Rendererrenderer = GetComponent();

renderer.material.mainTexture = webcamTexture;

webcamTexture.Play();

}

}

相关文章

  • Unity中 视频的采集与播放 BMS

    一.实验目的: 了解视频资源在Unity中的使用方式以及在Unity中实时显示视频的方法 二.实验内容: (1) ...

  • Android 音视频学习

    概述音频的采集与播放视频的采集与渲染MediaCodec 硬编解码MediaCodec 硬编 aac 参考 音视频...

  • Unity中播放视频

    可以在UGUI上播放视频,我的做法是建一个RawImage 然后建一个脚本挂在RawImage上,代码如下:usi...

  • 2019-09-30

    什么是BMS电池管理系统? BMS是电动汽车电池管理系统是连接车载动力电池和电动汽车的重要纽带。BMS实时采集、处...

  • Unity—播放视频

    先上结论,通用pc,android,ios各平台,且支持快进快退等功能的视频播放方案,推荐这个插件——AVI Pl...

  • iOS - 采集音视频及写入文件

    �音视频采集包括两部分:视频采集和音频采集。在iOS中可以同步采集视频与音频,通过系统框架AVFoundation...

  • 视频播放以及Android发布

    一、视频播放 Unity自带了两种播放API (1) MovieTexture(视频纹理)优点:简单,高效的快速完...

  • Unity视频播放插件(AVProVideo)

    Unity视频播放插件(AVProVideo1.6.2) 面片播放视频1,Hierarchy界面—— 创建一个面片...

  • EasyMovieTexture

    EasyMovieTexture Unity移动端第三方视频播放插件,支持视频本地播放,支持RTSP。 1>. 初...

  • Unity-Video

    Unity3D视频播放 Unity能够直接识别的视频格式.mov,.mpg,.mped,.mp4,.avi,.as...

网友评论

      本文标题:Unity中 视频的采集与播放 BMS

      本文链接:https://www.haomeiwen.com/subject/fgfgsxtx.html