using System; using TMPro; using UnityEngine; using UnityEngine.UI; public class Player : MonoBehaviour { public TextMeshProUGUI musicName; //显示歌曲的名字及歌手 public TextMeshProUGUI nowTime; //显示歌曲已播放的时间长度 public TextMeshProUGUI allTime; //显示当前歌曲的总时间长度 public Slider slid; //进度条 public Transform buttons; //按钮所在的集合体 public AudioClip[] auc; //存放歌曲的数组 public AudioSource aus; //音频播放器 private int currentHour, currentMinute, currentSecond; //已播放的时间(时、分、秒) private int clipHour, clipMinute, clipSecond; //总时间(时、分、秒) public static Player _instance; void Start() { _instance = this; aus.Stop(); //开始运行时不播放,点播放键才开始播放 #region 注:该方式虽然可以直接达到拖动进度条就播放到进度条当前的音乐,但会产生滋滋啦啦的杂音,是因为进度条value变化,使之不断调用onValueChanged,从而让音乐的进度发生了变化,音乐前后颠倒,不断重叠 /// /// 所以新建了个DragSlider脚本,挂在进度条上,来实现拖动播放的效果 /// //slid.onValueChanged.AddListener(delegate //{ // //加上之后,避免拖动进度条到最后不松手时报错 // if (slid.value == 1) // return; // //给进度条添加事件监听,每当拖动进度条,歌曲从相应的位置播放 // aus.time = slid.value * aus.clip.length; //}); buttons.GetComponent