Unityで押してる間録音するアプリを作る

2020/10/26
カテゴリー: Unity


音声アプリを作ってみる

まずは録音する用のボタンオブジェクトと再生する用のボタンオブジェクトを作成します。


そして、音を扱うためのAudioSorceコンポーネントを追加します。
今回は、EventSystemに追加します。


スクリプトもEventSystemに作成します。


スクリプトの中身はこちらになります。
using UnityEngine;

public class Test : MonoBehaviour
{
    AudioClip myclip;

    const int frequency = 44100; //サンプリング周波数
    const int lengthSec = 300; //最大録音時間[s]
    string deviceName;

    void Start()
    {
        deviceName = Microphone.devices[0]; //デフォルトのマイク
    }

    public void StartRecording() //録音ボタン押したとき用
    {
        Debug.Log("Recording Start");
        myclip = Microphone.Start(deviceName, false, lengthSec, frequency);

    }
    public void StopRecording() //録音ボタン離したとき用
    {
        Debug.Log("Recording Stop");
        Microphone.End(deviceName);
    }
    public void Playback() //再生ボタンクリックしたとき用
    {
        Debug.Log("Play");
        gameObject.GetComponent().clip = myclip;
        gameObject.GetComponent().Play();
    }
}


最後にボタンにスクリプトを設定していきます。
まずは録音ボタンです。
録音ボタンは押しはじめと離したときの処理で使いたいので、EventTriggerを追加します。
PointerDownとPointerUpを追加し、その中に作ったスクリプトの、関数を設定します。


再生ボタンでは、ボタンに用意されているOnClickの中にスクリプトの関数を設定します。


そしたら完成です!

こんな感じにできているでしょうか