【Unity3d】使用MovieTexture和Image实现简单的播放器

很久之前拜读过雨松大神关于u3d中播放视频的文章Unity3D研究院之两种方式播放游戏视频(二十五)。最近项目中有需要简单的视频播放的,但使用plane和GUI都不是很合适,于是试了一下直接使用Image控件,果然也是可以的。当然需要更强大的功能还是需要借助插件实现。
首先导入我们的视频文件,Unity支持.mov, .mpg, .mpeg, .mp4, .avi, .asf等视频格式,详细可以查询官方文档。导入视频之前需要安装QuickTime。如果在打开项目之后再安装的QuickTime,则需要重启一下项目。然后编辑一下我们的脚本,定义MovieTexture变量,负责影片播放的Image变量和负责声音播放的AudioSource变量,初始化播放器将image材质的mainTexture设为movie。

public Image image;
public MovieTexture movie;
public AudioSource audioPlayer;
image.material.mainTexture = movie;

定义播放器的播放,暂停,停止方法

public void Play()
{
    movie.Play();
    audioPlayer.Play();
}

public void Stop()
{
    movie.Stop();
    audioPlayer.Stop();
}

public void Pause()
{
    movie.Pause();
    audioPlayer.Pause();
}

新建一个Image物体和AudioSource物体,将我们导入的视频文件中的音频拖给AudioSource,然后将视频文件拖给MoviePlayer的movie,Image拖给image,AudioSource拖给audioPlayer。然后调用Play方法即可播放。

场景文件结构:
场景文件结构

MVImage的设置:
MVImage的设置

audio的设置:
audio的设置

运行效果(视频使用的是武士桑的Snow Halation指弹视频):
运行效果

也可以使用WWW加载程序外部视频,将WWW读取的MovieTexture赋值给MoviePlayer的movie,将WWW读取的MovieTexture的audioClip变量赋值给AudioSource的clip变量。

以下是MoviePlayer的完整代码:
MoviePlayer.cs:

using UnityEngine;
using UnityEngine.UI;

public class MoviePlayer : MonoBehaviour
{

    public Image image;
    public MovieTexture movie;
    public AudioSource audioPlayer;

    void Awake()
    {
        image.material.mainTexture = movie;
        Play();
    }

    public void Play()
    {
        movie.Play();
        audioPlayer.Play();
    }

    public void Stop()
    {
        movie.Stop();
        audioPlayer.Stop();
    }

    public void Pause()
    {
        movie.Pause();
        audioPlayer.Pause();
    }
}

By: 蒋志杰

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值