多语言展示
当前在线:216今日阅读:39今日分享:10

Unity 音乐播放器 之 可视化音频名称和时间控制

Unity 音乐播放器 之 可视化音频名称和时间控制。可视化的界面显示音频的名称和播放当前时间以及总时间;本节设计一个界面能显示音频名称,滑动调节播放进度,并动态显示播放时间的案例,具体如下图
工具/原料
1

Unity

2

Unity UGUI

音乐播放器 之 可视化音频名称和时间控制
1

打开Unity,新建一个空工程,在工程中新建一个脚本,脚本名称可以命名为“AudioTimeTest”,具体如下图

2

选中“AudioTimeTest”脚本,双击脚本或者右键“Open C# Project”,打开脚本,具体如下图

3

在打开的“AudioTimeTest”脚本上进行代码编辑,设置一些公共变量来取得相关信息,然后设置监听事件来控制播放进度,最后格式化显示当前时间与总时间,代码及代码说明如下图

4

AudioTimeTest 脚本具体如下:using UnityEngine;using UnityEngine.UI;[RequireComponent(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.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 音乐播放器 之 可视化音频名称和时间控制》讲解结束,谢谢

注意事项

若帮到您,还请帮忙投票以帮助到更多的人;若有疑问,请留言

推荐信息