Unity 音乐播放器 之 可视化音频名称和时间控制。可视化的界面显示音频的荏半吨蛸名称和播放当前时间以及总时间;本节设计一个界面能显示音频名称,滑动调节播放进度,并动态显示播放时间的案例,具体如下图
工具/原料
Unity
Unity UGUI
音乐播放器 之 可视化音频名称和时间控制
1、打开Unity,新建一个空工程,在工程中新建一个脚本,脚本名称可以命名为“AudioTimeTest”,具体如下图
2、选中“AudioTimeTest”脚本,双击脚本或者右键“Open C# Project”,打开脚本,具体如下图
3、在打开的“AudioTimeTest”脚本上进行代码编辑,设置一些公共变量来取得相蔡龇呶挞关信息,然后设置监听事件来控制播放进度,最后格式化显示当前时间与总时间,代码及代码说明如下图
4、AudioTimeTest 脚本具体如下:using UnityEngine;using UnityEngine.UI;[Requir髫潋啜缅eComponent(typeof(AudioSource))]public class AudioTimeTest : MonoBehaviour { public AudioClip audioClip; public Text audioTimeText; public Text audioTimeName; public Slider audioTimeSlider; // Use this for initialization void Start () { audioSource = GetComponent<AudioSource>(); audioSource.clip = audioClip; audioTimeName.text = audioClip.name; clipHour = (int) audioSource.clip.length / 3600; clipMinute = (int) (audioSource.clip.length - clipHour * 3600)/ 60; clipSecond = (int) (audioSource.clip.length - clipHour * 3600 - clipMinute * 60); audioSource.Play(); audioTimeSlider.onValueChanged.AddListener( (delegate { SetAudioTimeValueChange(); }) ); } // Update is called once per frame void Update () { ShowAudioTime(); } private void ShowAudioTime() { currentHour = (int)audioSource.time / 3600; currentMinute = (int)(audioSource.time - currentHour * 3600) / 60; currentSecond = (int)(audioSource.time - currentHour * 3600 - currentMinute * 60); audioTimeText.text = string.Format("{0:D2}:{1:D2}:{2:D2} / {3:D2}:{4:D2}:{5:D2}", currentHour, currentMinute, currentSecond, clipHour, clipMinute, clipSecond); audioTimeSlider.value = audioSource.time / audioClip.length; } private void SetAudioTimeValueChange() { audioSource.time = audioTimeSlider.value * audioSource.clip.length; } private AudioSource audioSource; private int currentHour; private int currentMinute; private int currentSecond; private int clipHour; private int clipMinute; private int clipSecond;}
5、脚本编译正确后,回到Unity界面,在场景中新建Text以及Slider,用来显示音频名称播放时间以及播放进度,然后适当调整UI布局,并且导入一个音频文件,具体如下图
6、把脚本“AudioTimeTest”赋给UI“AudioPanel”,并赋值相对应的变量,具体如下图
7、运行场景,即可以看到音频名称、音频播放时间,并且还可以通过滑钮调节播放进度,具体如下图
8、到此,《Unity 音乐播放器 之 可视化音频名称和时间控制》讲解结束,谢谢