前言
浅浅记录一下自己开发音乐播放器的历程,巩固自己的所学。同时也是深感基础不牢,地动山摇。
一、audio标签的使用
1、Audio 对象属性
属性 |
描述 |
audioTracks |
返回表示可用音频轨道的 AudioTrackList 对象。 |
autoplay |
设置或返回是否在就绪(加载完成)后随即播放音频。 |
buffered |
返回表示音频已缓冲部分的 TimeRanges 对象。 |
controller |
返回表示音频当前媒体控制器的 MediaController 对象。 |
controls |
设置或返回音频是否应该显示控件(比如播放/暂停等)。 |
crossOrigin |
设置或返回音频的 CORS 设置。 |
currentSrc |
返回当前音频的 URL。 |
currentTime |
设置或返回音频中的当前播放位置(以秒计)。 |
defaultMuted |
设置或返回音频默认是否静音。 |
defaultPlaybackRate |
设置或返回音频的默认播放速度。 |
duration |
返回音频的长度(以秒计)。 |
ended |
返回音频的播放是否已结束。 |
error |
返回表示音频错误状态的 MediaError 对象。 |
loop |
设置或返回音频是否应在结束时再次播放。 |
mediaGroup |
设置或返回音频所属媒介组合的名称。 |
muted |
设置或返回是否关闭声音。 |
networkState |
返回音频的当前网络状态。 |
paused |
设置或返回音频是否暂停。 |
playbackRate |
设置或返回音频播放的速度。 |
played |
返回表示音频已播放部分的 TimeRanges 对象。 |
preload |
设置或返回音频的 preload 属性的值。 |
readyState |
返回音频当前的就绪状态。 |
seekable |
返回表示音频可寻址部分的 TimeRanges 对象。 |
seeking |
返回用户当前是否正在音频中进行查找。 |
src |
设置或返回音频的 src 属性的值。 |
textTracks |
返回表示可用文本轨道的 TextTrackList 对象。 |
volume |
设置或返回音频的音量。 |
2、对象方法
方法 |
描述 |
addTextTrack() |
向音频添加新的文本轨道。 |
canPlayType() |
检查浏览器是否能够播放指定的音频类型。 |
fastSeek() |
在音频播放器中指定播放时间。 |
getStartDate() |
返回新的 Date 对象,表示当前时间线偏移量。 |
load() |
重新加载音频元素。 |
play() |
开始播放音频。 |
pause() |
暂停当前播放的音频。 |
二、效果
效果如下:
三、代码
代码如下: MusicPlayer.vue
HideMusic.vue
MyPlayer.vue
四、难点解析
1、过渡动画的实现
参考了vue文档过渡&动画中多个组件的过渡(下面三份代码)。vue文档
因此分化出MusicPlayer.vue 和 HideMusic.vue,由此又产生了组件内通信的问题。
2、组件内通信
为什么会产生组件内的通信?原因在于:MusicPlayer组件和HidePlayer组件,只能有一个展示,但是在不展示的过程中,他的数据应该也是实时改变的。例如MusicPlayer组件上有播放按钮,如果不采用组件通信,那么MusicPlayer重新渲染的时候,播放按钮会回到最初的设定,是不符合逻辑的。所以需要采用组件内通信的方式。实现的方式也比较简单,子组件直接访问父组件的数据,子组件通过$emit调用父组件的方法,修改父组件的数据。
3、旋转动画的实现
首先,编写动画。
然后,动态绑定class,isRun两个值即为"go","come"。
总结
这次一个小小的实战,让我重新学习到了不少的CSS操作方法,但由于基础太弱,很多简单的东西都变得复杂。还好vue提供了一些方法,让解决方式变得容易了一些。奋斗吧!还有很长的路要走!!