Unity音乐播放器之可视化音频名称和时间控制。可视化的界面显示音频的荏半吨蛸名称和播放当前时间以及总时间;本节设计一个界面能显示音频名称,滑动调节播放进度,并动态显示播放时间的案例,具体如下图
工具/原料
Unity
UnityUGUI
音乐播放器之可视化音频名称和时间控制
1、打开Unity,新建一个空工程,在工程中新建一个脚本,脚本名称可以命名为“AudioTimeTest”,具体如下图
2、选中“AudioTimeTest”脚本,双击脚本或者右键“OpenC#Project”,打开脚本,具体如下图
3、在打开的“AudioTimeTest”脚本上进行代码编辑,设置一些公共变量来取得相蔡龇呶挞关信息,然后设置监听事件来控制播放进度,最后格式化显示当前时间与总时间,代码及代码说明如下图
4、AudioTimeTest脚本具体跗柿椁焚如下:usingUnityEngine;usingUnityEngine.UI;[Requir髫潋啜缅eComponent(typeof(AudioSource))]publicclassAudioTimeTest:MonoBehaviour{publicAudioClipaudioClip;publicTextaudioTimeText;publicTextaudioTimeName;publicSlideraudioTimeSlider; //Usethisforinitialization voidStart(){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();}));} //Updateiscalledonceperframe voidUpdate(){ShowAudioTime();}privatevoidShowAudioTime(){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;}privatevoidSetAudioTimeValueChange(){audioSource.time=audioTimeSlider.value*audioSource.clip.length;}privateAudioSourceaudioSource;privateintcurrentHour;privateintcurrentMinute;privateintcurrentSecond;privateintclipHour;privateintclipMinute;privateintclipSecond;}
5、脚本编译正确后,回到Unity界面,在场景中新建Text以及Slider,用来显示音频名称播放时间以及播放进度,然后适当调整UI布局,并且导入一个音频文件,具体如下图
6、把脚本“AudioTimeTest”赋给UI“AudioPanel”,并赋值相对应的变量,具体如下图
7、运行场景,即可以看到音频名称、音频播放时间,并且还可以通过滑钮调节播放进度,具体如下图
8、到此,《Unity音乐播放器之可视化音频名称和时间控制》讲解结束,谢谢