记录unity视频选择与播放_IOS&Android

文章目录

  • 前言
  • 一、工作背景
  • 二、工作步骤
    • 1.IOS部分
    • 2.Android部分
    • 3.导出打包测试
  • 总结


前言

最近需要开发app中的视频播放功能,首先要从系统相册中选择视频,然后将其在app中全屏播放。


一、工作背景

首先在unity中搭建了一个简单的平台,一个按钮和一个videoplayer物体。videoplayer使用的是unity自带的。
在button上挂了一个脚本,用来监听点击动作。通过判断不同的平台类型,安排对应的操作。
直接上代码 内联代码片

// unity端的代码
//定义相关的参数
    public Button btn;
    public GameObject m_videoPlayer;
    //public Image ImageView;
    AndroidJavaObject jo;

    [DllImport("__Internal")]
    private static extern void IOS_OpenAlbum();

    //点击按钮
    public void Start()
    {
   
        //点击按钮打开系统相册
        Debug.Log("点击了打开相册按钮");
        //在工程的开始阶段还是可以采用访问网页的形式上传视频的。
#if UNITY_EDITOR
        Debug.Log("首先判断当前是unity编辑器,ios环境还是安卓环境,暂不做任何动作");
        m_videoPlayer.GetComponentInChildren<PlayChoosedVideo>().urlNetWork = @"/Downloads/recording_2021_04_11_18_12_41_718.MP4";
        AwakeAndCallUnity();
#elif UNITY_IOS
        Debug.Log("当前是ios环境,将打开iphone中的相册");
        AwakeAndCallIOS();
#elif UNITY_ANDROID
        Debug.Log("当前是Android环境,将打开安卓或华为手机中的相册");
        AwakeAndCallAndroid();
#endif

    }

    //平台是unity editor
    private void AwakeAndCallUnity()
    {
   
        btn.onClick.AddListener(delegate {
   

            m_videoPlayer.GetComponentInChildren<PlayChoosedVideo>().GoToPlayVideo();
        });
    }
    //平台是ios则运行ios唤醒和召唤
    private void AwakeAndCallIOS()
    {
   
        btn.onClick.AddListener(IOS_OpenAlbum);
    }

    //平台是android则运行安卓唤醒和召唤
    private void AwakeAndCallAndroid()
    {
   
        AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
        btn.onClick.AddListener(delegate {
   
            CallAndroid();
            Debug.Log("点击按钮");
        });
    }

    void CallAndroid()
    {
   
        jo.Call("startPhoto");
        Debug.Log("向安卓提出操作请求");
    }

    public void message(string str)
    {
   
#if UNITY_ANDROID
        Debug.Log("安卓传来信息:" + str);
        StartCoroutine(LoadTexturePreview(str

你可能感兴趣的:(xcode,android,studio,unity3d)