ผมเลยเขียนโปรแกรมด้วย Unity เพื่อใช้ประโยชน์ในการนำเสนองาน
ซึ่งผมจะเอาส่วนนึงมาแชร์ เป็นการนำข้อมูลของกระแสเสียงที่ออกผ่านลำโพง
( ดึงค่าจาก audio.GetOutputData() ) มาแสดงผลเป็นกราฟของเสียง
ด้วย Component LineRenderer
การใช้งาน เดี๋ยวจะทำคลิปตามทีหลังนะครับ
ที่จริงลองไปเล่นดูก่อนได้ครับ มีตัวแปรให้ปรับสองสามตัว
จะเป็นพวกขนาด visualizer และก็ความละเอียดของกราฟครับ
ส่วนหน้าตาของโค้ดก็ประมาณนี้ครับ
รายละเอียดติดตามภายในคลิปนะครับ(เสร็จแล้วจะลงเพจอีกที)
รายละเอียดเพิ่มเติมในคลิปครับ
โค้ดดิบสำหรับก้อบ
using UnityEngine;
using System.Collections;
public class soundWave : MonoBehaviour
{
public LineRenderer lineRend;
public int quality = 50;
public float len = 25;
public float amplitude = 20;
void Update ()
{
float[] soundBit = new float[quality];
lineRend.SetVertexCount(quality);
if (audio.isPlaying)
{
for (int i = -quality / 2; i < quality / 2; i++)
{
audio.GetOutputData(soundBit, 0);
lineRend.SetPosition(i + quality / 2, new Vector3(i * (float)((float)len / (float)quality), soundBit[i + quality / 2] * amplitude, 0));
}
}
}
}
using System.Collections;
public class soundWave : MonoBehaviour
{
public LineRenderer lineRend;
public int quality = 50;
public float len = 25;
public float amplitude = 20;
void Update ()
{
float[] soundBit = new float[quality];
lineRend.SetVertexCount(quality);
if (audio.isPlaying)
{
for (int i = -quality / 2; i < quality / 2; i++)
{
audio.GetOutputData(soundBit, 0);
lineRend.SetPosition(i + quality / 2, new Vector3(i * (float)((float)len / (float)quality), soundBit[i + quality / 2] * amplitude, 0));
}
}
}
}
#7 - สารบัญโค้ด