Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d vimeo unity sdk:如何替换现有视频?_Unity3d_Vimeo - Fatal编程技术网

Unity3d vimeo unity sdk:如何替换现有视频?

Unity3d vimeo unity sdk:如何替换现有视频?,unity3d,vimeo,Unity3d,Vimeo,我设法从Unity向Vimeo上传了一个新视频,但我不知道如何替换现有视频的文件 以下是我目前拥有的砖块: 我的脚本中有一个对VimeoRecorder组件的引用 我的录像机已连接到AVPro录像机 我使用temp-VimeoApi组件获取现有视频 我通过公共接口触发AVPro捕获 在当前的代码中,我在查找同名的现有视频时没有做任何特殊的操作,上传只会创建一个同名的新视频。没有隐式替换 代码如下: using System; using System.IO; using UnityEngin

我设法从Unity向Vimeo上传了一个新视频,但我不知道如何替换现有视频的文件

以下是我目前拥有的砖块:

  • 我的脚本中有一个对VimeoRecorder组件的引用

  • 我的录像机已连接到AVPro录像机

  • 我使用temp-VimeoApi组件获取现有视频

  • 我通过公共接口触发AVPro捕获

在当前的代码中,我在查找同名的现有视频时没有做任何特殊的操作,上传只会创建一个同名的新视频。没有隐式替换

代码如下:

using System;
using System.IO;
using UnityEngine;
using RenderHeads.Media.AVProMovieCapture;
using UnityEngine.Events;
using Vimeo.Recorder;
using Vimeo;

public class CaptureProxy : MonoBehaviour
{
    public VimeoRecorder m_vimeoRecorder;
    VimeoApi m_vimeoApi;
    public CaptureBase m_movieCapture;

    void Start()
    {        
            m_movieCapture = gameObject.AddComponent<CaptureFromTexture>();
            m_movieCapture._isRealTime = false;
            m_movieCapture._manualUpdate = true;
            m_movieCapture._useMediaFoundationH264 = true;
            m_movieCapture._postCaptureSettings.writeFastStartStreamingForMp4 = true;    
            m_vimeoRecorder.avproEncoder = m_movieCapture;

        m_vimeoApi = gameObject.AddComponent<VimeoApi>();
        m_vimeoApi.token = m_vimeoRecorder.GetVimeoToken();
        m_vimeoApi.OnRequestComplete += VimeoGetVideosComplete;
        m_vimeoApi.OnError += OnVimeoRequestError;
        m_vimeoApi.GetVideosInFolder(m_vimeoRecorder.currentFolder);
    }

    private void VimeoGetVideosComplete(string response)
    {
        m_vimeoApi.OnRequestComplete -= VimeoGetVideosComplete;
        m_vimeoApi.OnError -= OnVimeoRequestError;
        Destroy(m_vimeoApi);

        var json = Vimeo.SimpleJSON.JSONNode.Parse(response);
        Vimeo.SimpleJSON.JSONNode videoData = json["data"];

        if (videoData.Count > 0)
        {
            for (int i = 0; i < videoData.Count; i++)
            {
                VimeoVideo video = new VimeoVideo(videoData[i]);
                if (video.name.StartsWith(m_recordParams.filetag))
                {
                    Debug.LogWarning("Video already exists at url: " + video.uri);
                    // And that's what I know so far
                    // I would like to give the VimeoVideo object to m_videoRecorder for it to upload the video file to the same entry
                }
            }
        }

    }

    public void StartCapture()
    {
        // starts the capture
        m_movieCapture.StartCapture();

    }

    public void StopCapture()
    {
        // stops the capture, and triggers Vimeo upload
        m_movieCapture.StopCapture();

    }

}
使用系统;
使用System.IO;
使用UnityEngine;
使用RenderHeads.Media.AVProMovieCapture;
使用UnityEngine.Events;
使用Vimeo.记录仪;
使用Vimeo;
公共类CaptureProxy:MonoBehavior
{
公共视频记录器m_视频记录器;
VimeoApi m_VimeoApi;
公共CaptureBase m_movieCapture;
void Start()
{        
m_movieCapture=gameObject.AddComponent();
m_movieCapture._isRealTime=false;
m_movieCapture._manualUpdate=true;
m_movieCapture._useMediaFoundationH264=真;
m_movieCapture._postCaptureSettings.writeFastStartStreamingForMp4=真;
m_vimeoRecorder.avproEncoder=m_movieCapture;
m_vimeoApi=gameObject.AddComponent();
m_vimeoApi.token=m_vimeoRecorder.GetVimeoToken();
m_vimeoApi.OnRequestComplete+=VimeoGetVideosComplete;
m_vimeoApi.OnError+=OnVimeoRequestError;
m_vimeoApi.GetVideosInFolder(m_vimeoRecorder.currentFolder);
}
私有void VimeGetVideosComplete(字符串响应)
{
m_vimeoApi.OnRequestComplete-=VimeoGetVideosComplete;
m_vimeoApi.OnError-=OnVimeoRequestError;
销毁(m_vimeoApi);
var json=Vimeo.SimpleJSON.JSONNode.Parse(响应);
Vimeo.SimpleJSON.JSONNode videoData=json[“数据”];
如果(videoData.Count>0)
{
对于(int i=0;i
不幸的是,Vimeo Unity SDK目前不支持视频文件替换。但是,此功能在Vimeo的API中可用。登录Vimeo帐户时,了解如何修改Unity SDK以替换Vimeo视频


也可以随时提交申请。

谢谢Casey!我提交了一个功能请求: