unity www下载

可以在程序运行后,下载图片、文本、视频等并显示在ui上或者存到本地等...

也可以在摄像机或者物体上播放视频........///下载速度可能巨慢,不建议下载视频

建一个简单的UI,画布加两个图片.......

注意:下载⽅法必须是协程⽅法!!

 

 

 

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.IO;
using UnityEngine.Video;

public class WWWDemo : MonoBehaviour {

    [Header("URL")]
    public string url = "、、、、、、、、填个地址";
    [Header("展示图片")]
    public RawImage rawImage;
    [Header("展示图片")]
    public Image image;

    private AudioSource aud;

    private VideoPlayer videoPlayer;

    private void Awake()
    {
        aud = GetComponent<AudioSource>();
        videoPlayer = GetComponent<VideoPlayer>();
    }

    private void Start()
    {
        //StartCoroutine(DownloadText());
        //StartCoroutine(DownloadTexture());
        //StartCoroutine(DownloadAudio());
        //StartCoroutine(DownloadMovieTexture());
        //StartCoroutine(DownloadBytes());
        StartCoroutine(DownloadAndPlayVideo());
    }

    IEnumerator DownloadText()
    {
        //创建WWW对象,并传入URL
        WWW www = new WWW(url);
        //等待www下载完毕
        yield return www;
        Debug.Log("<color=blue>"  + www.text + "</color>");
    }

    IEnumerator DownloadTexture()
    {
        WWW www = new WWW(url);
        yield return www;

        Texture texture = www.texture;

        texture.name = "Gril";

        //Image:Sprite  RawImage:Texture
        //将下载好的图片,用RawImage渲染出来
        rawImage.texture = texture;

        //将纹理转换为精灵并设置到Image
        image.sprite = Sprite.Create(
            www.texture,
            new Rect(0, 0,
                www.texture.width,
                www.texture.height),
            Vector2.zero);

        //调整RawImage的宽高
        rawImage.GetComponent<
            RectTransform>().sizeDelta
            = new Vector2(
            www.texture.width,
            www.texture.height);
        //调整Image的宽高
        image.GetComponent<
            RectTransform>().sizeDelta
            = new Vector2(
            www.texture.width,
            www.texture.height);
    }

    IEnumerator DownloadAudio()
    {
        WWW www = new WWW(url);
        yield return www;
        //获取下载的声音片段
        AudioClip clip = www.GetAudioClip();
        //添加到AudioSource
        aud.clip = clip;
        //播放
        aud.Play();
    }///DownloadAudio()里面播放视频和声音现在应该是用不了的

    IEnumerator DownloadMovieTexture()
    {
        WWW www = new WWW(url);

        while(!www.isDone)
        {
            //打印进度
            Debug.Log("进度: " + www.progress);
            //没有在线完毕,继续等待
            yield return null;
        }

        //获取下载好的MovieTexture
        MovieTexture movie = www.GetMovieTexture();
        //将视频放置在RawImage
        rawImage.texture = movie;
        //将声音放置到AudioSource
        aud.clip = movie.audioClip;
        //播放画面
        movie.Play();
        //播放声音
        aud.Play();
    }


    IEnumerator DownloadBytes()
    {
        WWW www = new WWW(url);

        while (!www.isDone)
        {
            //打印进度
            Debug.Log("进度: " + www.progress);
            //没有在线完毕,继续等待
            yield return null;
        }
        //将比特流写入本地
        File.WriteAllBytes(Application.dataPath + "/Resources/demo.mp4", www.bytes);
    }

    IEnumerator DownloadAndPlayVideo()
    {
        //从Resource里加载视频文件
        VideoClip video = Resources.Load<VideoClip>("demo");

        if(video == null)
        {
            //下载该视频到Resources文件夹
            yield return StartCoroutine(DownloadBytes());
            //等一帧
            yield return new WaitForEndOfFrame();
            //重新Load
            video = Resources.Load<VideoClip>("demo");
        }

        //设置视频片段
        videoPlayer.clip = video;
        //播放
        videoPlayer.Play();
    }这个可以用
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zw想做游戏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值