由于项目需求,讨论如何做个播放器,能够实现流畅播放高码率高分辨率的视频。。。
>>>因此决定从共享内存里入手,C++获取本地视频文件写到windows的共享内存
>>>unity则从共享内存里读取YUV420p数据贴图到画面
本文只涉及到获取YUV420P数据后实现播放,至于这数据怎么来的以及相关C++的DLL不进行详细讨论,俺也不清楚
代码大致流程:初始化DLL,并开始从DLL获取数据,存进Queue,在FixedUpdate()取出Queue图像并贴图
Shader下载地址http://download.csdn.net/download/le_sam/9980147
相关Inspector如下:(把下载的Shander绑定到player)
public class Player : MonoBehaviour
{
public static string SHARE_MEMORY_NAME = "user-defined";
public static int SHARE_MEM_SIZE = "user-defined";
private bool isRead = true;
public Material mShareMaterial;
private Texture2D texY, texU, texV;
private Queue<byte[]> ListQueue = new Queue<byte[]>();
private void Awake()
{
gameObject.GetCompo