NewN_UAVPlane/Assets/Plugins/RenderHeads/AVProMovieCapture/Runtime/Scripts/Components/AudioSourceToWav.cs

38 lines
1.1 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
//-----------------------------------------------------------------------------
// Copyright 2014-2021 RenderHeads Ltd. All rights reserved.
//-----------------------------------------------------------------------------
namespace RenderHeads.Media.AVProMovieCapture
{
/// <summary>
/// Place this component below an AudioSource or AudioListener to capture to WAV file
/// </summary>
public class AudioSourceToWav : MonoBehaviour
{
[SerializeField] string _filename = "output.wav";
private WavWriter _wavWriter;
void OnEnable()
{
string path = Path.Combine(Application.persistentDataPath, _filename);
Debug.Log("[AVProMovieCapture] Writing WAV to " + path);
_wavWriter = new WavWriter(path, UnityAudioCapture.GetUnityAudioChannelCount(), AudioSettings.outputSampleRate, WavWriter.SampleFormat.Float32);
}
void OnDisable()
{
_wavWriter.Dispose();
_wavWriter = null;
}
void OnAudioFilterRead(float[] data, int channels)
{
_wavWriter.WriteInterleaved(data);
}
}
}