AVPro批量制作视频缩略图

最近做的项目有一个需求,在不确定视频的情况下,制作视频缩略图,总体思路是,获取所有视频路径,根据路径加载到播放器中,根据这个播放器一个一个的加载视频的缩略图,废话不多说看代码

  public RawImage raw;
    public List<Texture2D> thumbnail = new List<Texture2D>();//存放缩略图列表
    int i = 0;//计算视频长度
    //在视频未播放前 把所有的视频缩略图都加载出来
    IEnumerator IESaveVideoThumb(MediaPlayer mediaPlayer)//缩略图
    {     
        yield return null;                                                                      //视频路径
        mediaPlayer.OpenVideoFromFile(MediaPlayer.FileLocation.RelativeToStreamingAssetsFolder, VideoManager._instance.videoNameList[i], false);
        i++;
        //  mediaPlayer.Info.GetDurationMs() 取的是毫秒
        //这个地方不加延迟的话就获取不到他的帧数
        yield return new  WaitForSeconds(0.12f);
        float durationMs = mediaPlayer.Info.GetDurationMs()/1000;
        float ms = durationMs < 1 ? durationMs : 1;
        //取视频中1秒位置保存为图片
        Texture2D t = mediaPlayer.ExtractFrame(null, ms);
        thumbnail.Add(t);
        raw.texture = t;
        if (i< VideoManager._instance.videoNameList.Count)
        {
            StartCoroutine(IESaveVideoThumb(mediaPlayer)) ;
        }
        else
        {
         //当所有缩略图制作完成执行...
        }

    }

你可能感兴趣的:(unity,AVPro,unity3d)