Version: 2020.1
언어: 한국어

MediaEncoder

class in UnityEditor.Media

매뉴얼로 전환

설명

Encodes images and audio samples into an audio or movie file.

Constructing an instance of this class creates an encoder that will create an audio, video or audio/video file with the specified tracks in it.

Call the AddFrame() and AddSamples() methods alternately for each track, so that frames and samples keep each track equally filled.

Once all the wanted frames and samples are added to the file, call Dispose() to end each track properly and close the file.

using UnityEditor.Media;
using UnityEngine;
using Unity.Collections;
using System.IO;

public class Recorder { static public void RecordMovie() { var videoAttr = new VideoTrackAttributes { frameRate = new MediaRational(50), width = 320, height = 200, includeAlpha = false };

var audioAttr = new AudioTrackAttributes { sampleRate = new MediaRational(48000), channelCount = 2, language = "fr" };

int sampleFramesPerVideoFrame = audioAttr.channelCount * audioAttr.sampleRate.numerator / videoAttr.frameRate.numerator;

var encodedFilePath = Path.Combine(Path.GetTempPath(), "my_movie.mp4");

Texture2D tex = new Texture2D((int)videoAttr.width, (int)videoAttr.height, TextureFormat.RGBA32, false);

using (var encoder = new MediaEncoder(encodedFilePath, videoAttr, audioAttr)) using (var audioBuffer = new NativeArray<float>(sampleFramesPerVideoFrame, Allocator.Temp)) { for (int i = 0; i < 100; ++i) { // Fill 'tex' with the video content to be encoded into the file for this frame. // ... encoder.AddFrame(tex);

// Fill 'audioBuffer' with the audio content to be encoded into the file for this frame. // ... encoder.AddSamples(audioBuffer); } } } }

생성자

MediaEncoderCreate a new encoder with various track arrangements.

Public 함수

AddFrameAppends a frame to the file's video track.
AddSamplesAppends sample frames to the specified audio track.
DisposeFinishes writing all tracks and closes the file being written.
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961