audio.nvue 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368
  1. <template name="dever-audio">
  2. <view class="control">
  3. <view v-if="lrc">
  4. <bing-lyric :lyrics="lyrics" :centerStyle="centerStyle" :curTime="currentTimeSecond" :areaStyle="cuAreaStyle" :selectControlStyle="selectControlStyle" :lyricStyle="lyricStyle"
  5. @centerBtnClick="centerBtnClick" @copyLyrics="copy"></bing-lyric>
  6. </view>
  7. <view @click="open" v-if="!lrc">
  8. <cover-image v-if="pic" class="poster" :src="pic" mode="aspectFill" style="height:auto">
  9. </cover-image>
  10. <cover-image
  11. class="ico-music-playing" v-if="playButton"></cover-image>
  12. <cover-image
  13. class="ico-music-play" v-if="!playButton"></cover-image>
  14. </view>
  15. <view :class="audioClass">
  16. <view class="audio-wrapper">
  17. <view class="audio-number">{{currentTime}}</view>
  18. <slider class="audio-slider" :activeColor="color" block-size="16" :value="current" :max="duration" @changing="seek=true,current=$event.detail.value"
  19. @change="change"></slider>
  20. <view class="audio-number">{{durationTime}}</view>
  21. </view>
  22. <view class="audio-controll" v-if="lrc">
  23. <cover-image class="image" v-if="!recycleStatus" @click="setRecycle" src="@/static/music/recycle.png" mode="aspectFit"></cover-image>
  24. <cover-image class="image" v-if="recycleStatus" @click="setRecycle" src="@/static/music/recycled.png" mode="aspectFit"></cover-image>
  25. <cover-image class="image" @click="last" src="@/static/music/last.png" mode="aspectFit"></cover-image>
  26. <cover-image class="image" v-if="!play" @click="open" src="@/static/music/play.png" mode="aspectFit"></cover-image>
  27. <cover-image class="image" v-if="play" @click="open" src="@/static/music/pause.png" mode="aspectFit"></cover-image>
  28. <cover-image class="image" @click="next" src="@/static/music/next.png" mode="aspectFit"></cover-image>
  29. </view>
  30. </view>
  31. </view>
  32. </template>
  33. <script>
  34. import bingLyric from '@/lib/bing-lyric/bing-lyric.vue'
  35. import copyText from "@/lib/clipboard.thorui.js";
  36. export default {
  37. name: "dever-audio",
  38. props: {
  39. src : {
  40. type : String,
  41. value : null
  42. },
  43. loop : {
  44. type : Boolean,
  45. value : false
  46. },
  47. pic : {
  48. type : String,
  49. value : null
  50. },
  51. auto : {
  52. type : Boolean,
  53. value : false
  54. },
  55. control : {
  56. type : Boolean,
  57. value : false
  58. },
  59. color: {
  60. type:String,
  61. default:'#169af3'
  62. },
  63. title : '',
  64. singer : '',
  65. lrc : '',
  66. lrc_color : '',
  67. lrc_atcolor : '',
  68. recycle : '',
  69. },
  70. components:{
  71. bingLyric
  72. },
  73. data() {
  74. return {
  75. time : {},
  76. objectFit : 'fill',
  77. play : false,
  78. playButton : false,
  79. audio : false,
  80. recycleStatus : false,
  81. audioClass : 'audio-lrc',
  82. currentTime: '', //当前播放时间
  83. duration:'',
  84. durationTime: '', //总时长
  85. current: 0, //slider当前进度
  86. loading: false, //是否处于读取状态
  87. paused: true, //是否处于暂停状态
  88. seek: false ,//是否处于拖动状态
  89. currentTimeSecond: 0,//当前播放秒数
  90. centerStyle: {
  91. btnImg: '../../static/music/btn.png',
  92. },
  93. lyricStyle: {
  94. color: this.lrc_color ,//歌词颜色,
  95. activeColor: this.lrc_atcolor ,//当前播放的歌词的颜色,
  96. fontSize: '16px' ,//歌词字体尺寸
  97. activeFontSize: '16px' ,//当前播放的歌词的字体尺寸
  98. lineHeight: '40px' ,//每句歌词的显示区域的高度 以此来调整歌词间距
  99. activeLineHeight: '32px' ,//当前播放歌词的显示区域的高度
  100. selectedBGColor: 'inherit' ,//进入歌词选择模式时,被选择的歌词背景颜色
  101. },
  102. cuAreaStyle: {
  103. width: '100vw',
  104. height: '100vh',
  105. background : 'url('+this.pic+')',
  106. },
  107. selectControlStyle : {
  108. color : 'white',
  109. itemBackgroundColor : '#333333',
  110. backgroundColor : 'rgba(0,0,0,0)',
  111. },
  112. lyrics: [],
  113. };
  114. },
  115. watch: {
  116. //监听总时长改变
  117. duration(e) {
  118. //this.durationTime = this.format(e)
  119. },
  120. //监听当前进度改变
  121. current(e) {
  122. this.currentTime = this.format(e)
  123. this.currentTimeSecond = e;
  124. this.timeUpdate(this.currentTimeSecond);
  125. }
  126. },
  127. mounted() {
  128. //考虑换成getBackgroundAudioManager()
  129. if (this.Dever.source == 'h5') {
  130. this.audio = uni.createInnerAudioContext()
  131. this.audio.src = this.src;
  132. this.audio.obeyMuteSwitch = false;
  133. this.audio.autoplay = this.auto;
  134. //this.audio.loop = this.loop;
  135. } else {
  136. this.audio = uni.getBackgroundAudioManager()
  137. this.audio.title = this.title;
  138. this.audio.singer = this.singer;
  139. this.audio.coverImgUrl = this.pic;
  140. this.audio.src = this.src;
  141. }
  142. this.recycleStatus = this.recycle;
  143. if (!this.lrc) {
  144. this.lyrics = [];
  145. this.audioClass = 'audio';
  146. } else {
  147. if (this.lrc.length > 0) {
  148. this.lyrics = this.lrc;
  149. } else {
  150. this.lyrics = [];
  151. }
  152. this.audioClass = 'audio-lrc';
  153. }
  154. this.current = 0;
  155. //音频进度更新事件
  156. this.audio.onTimeUpdate(() => {
  157. if (!this.seek) {
  158. this.current = this.audio.currentTime;
  159. }
  160. if (!this.durationTime) {
  161. this.duration = this.audio.duration;
  162. this.durationTime = this.format(this.audio.duration);
  163. }
  164. })
  165. //音频完成更改进度事件
  166. this.audio.onSeeked(() => {
  167. this.seek = false;
  168. })
  169. //音频播放完成事件
  170. this.audio.onEnded(() => {
  171. if (this.recycleStatus) {
  172. // 播放下一曲
  173. this.next();
  174. } else {
  175. this.play = false;
  176. this.playButton = false;
  177. this.audio.seek(0);
  178. this.start();
  179. }
  180. });
  181. },
  182. methods:{
  183. start : function() {
  184. this.$emit('update:load', true);
  185. if (!this.play) {
  186. this.Dever.bgm().stop();
  187. this.audio.play();
  188. this.play = true;
  189. this.playButton = true;
  190. this.$emit('play', 'start');
  191. }
  192. },
  193. stop : function() {
  194. if (this.play) {
  195. this.audio.pause();
  196. this.play = false;
  197. this.playButton = false;
  198. this.$emit('play', 'stop');
  199. }
  200. },
  201. open : function() {
  202. if (!this.play) {
  203. this.start();
  204. } else {
  205. this.stop(true);
  206. }
  207. },
  208. //上一曲
  209. last : function() {
  210. this.$emit('last');
  211. },
  212. //下一曲
  213. next : function() {
  214. this.$emit('next');
  215. },
  216. //多曲循环播放
  217. setRecycle : function() {
  218. this.recycleStatus = !this.recycleStatus;
  219. this.$emit('setRecycle');
  220. },
  221. //格式化时长
  222. format : function(num) {
  223. return '0'.repeat(2 - String(Math.floor(num / 60)).length) + Math.floor(num / 60) + ':' + '0'.repeat(2 - String(
  224. Math.floor(num % 60)).length) + Math.floor(num % 60)
  225. },
  226. //完成拖动事件
  227. change : function(e) {
  228. this.audio.seek(e.detail.value)
  229. },
  230. copy : function(e) {
  231. var self = this;
  232. var value = '';
  233. for (var i in e.lyrics) {
  234. value += e.lyrics[i] + "\r\n";
  235. }
  236. copyText.getClipboardData(value, function(res) {
  237. if (res) {
  238. self.Dever.alert('复制成功');
  239. } else {
  240. self.Dever.alert('复制失败');
  241. }
  242. });
  243. },
  244. centerBtnClick : function(e) {
  245. this.currentTimeSecond = e.centerTime
  246. this.audio.seek(this.currentTimeSecond);
  247. },
  248. timeUpdate : function(time) {
  249. if (this.play == true) {
  250. var currentTime = time;
  251. currentTime = parseInt(currentTime);
  252. if (!this.time[currentTime]) {
  253. this.time[currentTime] = currentTime;
  254. this.$emit('play', 'time', [this, currentTime]);
  255. }
  256. }
  257. }
  258. },
  259. }
  260. </script>
  261. <style scoped>
  262. .control {
  263. width: 100%;
  264. height: 100%;
  265. z-index: 2;
  266. background: transparent;
  267. position: absolute;
  268. left: 0;
  269. top: 0;
  270. overflow: hidden;
  271. }
  272. .poster{
  273. background-size: cover;
  274. position: absolute;
  275. left: 0;
  276. top: 0;
  277. width: 100%;
  278. height: 100%;
  279. }
  280. .audio-lrc {
  281. padding: 24rpx;
  282. background: #fff;
  283. border-radius: 20rpx;
  284. position: absolute;
  285. z-index: 100;
  286. background: #666666;
  287. background: hsla(0,0%,100%,.6);
  288. bottom: 10rpx;
  289. left: 20rpx;
  290. width: 78%;
  291. }
  292. .audio {
  293. padding: 24rpx;
  294. background: #fff;
  295. border-radius: 20rpx;
  296. position: absolute;
  297. z-index: 100;
  298. background: transparent;
  299. bottom: 0rpx;
  300. left: 0rpx;
  301. width: 100%;
  302. }
  303. .audio-wrapper {
  304. display: flex;
  305. align-items: center;
  306. }
  307. .audio-number {
  308. font-size: 24rpx;
  309. line-height: 1;
  310. color: #333;
  311. color: #fff;
  312. }
  313. .audio-slider {
  314. flex: 1;
  315. margin: 0 30rpx;
  316. }
  317. .audio-controll {
  318. display: flex;
  319. justify-content: space-around;
  320. margin-top: 26rpx;
  321. }
  322. .audio-controll .image {
  323. display: inline-block;
  324. height: 30rpx;
  325. width: 30rpx;
  326. }
  327. .ico-music-play{
  328. background: url(@/static/music/speaker.png) no-repeat;
  329. background-size: cover;
  330. width: 100rpx;
  331. height: 100rpx;
  332. position: absolute;
  333. left: 50%;
  334. top: 50%;
  335. transform: translate3d(-50%,-50%,0);
  336. }
  337. .ico-music-playing{
  338. background: url(data:image/gif;base64,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) no-repeat;
  339. background-size: cover;
  340. width: 100rpx;
  341. height: 100rpx;
  342. position: absolute;
  343. left: 50%;
  344. top: 50%;
  345. transform: translate3d(-50%,-50%,0);
  346. }
  347. </style>