Version: 5.4 (switch to 5.5b)
言語English
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

AudioClip.GetData

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

マニュアルに切り替える
public function GetData(data: float[], offsetSamples: int): bool;
public bool GetData(float[] data, int offsetSamples);

Parameters

Description

クリップからサンプルデータの配列を取得します。

サンプルは-1.0f から 1.0f までの float 値です。サンプルの数は float 配列の長さによって決定されます。 クリップの指定した位置から読み込みを開始する場合は offsetSamples パラメーターを使用してください。オフセット位置からの読み込みの長さがクリップの長さよりも大きい場合、読み込みは循環します。 読み込みは一巡し、残りをクリップのスタート位置からサンプリングを行います。

圧縮されたオーディオファイル、オーディオインポーターで Load TypeDecompress on Load に設定されているときサンプルデータを引き出すのみしかできないことに注意してください。もしこれがそうでない場合、配列はすべてのサンプル値を 0 として返すことになります。

// Read all the samples from the clip, reducing their gain by half
// as we go along.
function Start () {
	var aud = GetComponent.<AudioSource>();
	var samples = new float[aud.clip.samples * aud.clip.channels];
	aud.clip.GetData(samples, 0);
	
	for (var i = 0; i < samples.Length; ++i)
		samples[i] = samples[i] * 0.5f;
	
	aud.clip.SetData(samples, 0);
}
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { void Start() { AudioSource aud = GetComponent<AudioSource>(); float[] samples = new float[aud.clip.samples * aud.clip.channels]; aud.clip.GetData(samples, 0); int i = 0; while (i < samples.Length) { samples[i] = samples[i] * 0.5F; ++i; } aud.clip.SetData(samples, 0); } }