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

2025-09-28 11:42:06

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

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

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

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

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

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

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

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

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>();

        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布局,并且导入一个音频文件,具体如下图

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

6、把脚本“AudioTimeTest”赋给UI“AudioPanel”,并赋值相对应的变量,具体如下图

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

7、运行场景,即可以看到音频名称、音频播放时间,并且还可以通过滑钮调节播放进度,具体如下图

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

8、到此,《Unity 音乐播放器 之 可视化音频名称和时间控制》讲解结束,谢谢

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢