微信小程序音乐播放器全代码
时间: 2024-12-16 15:13:45 浏览: 33
微信小程序的音乐播放器通常包含音频加载、控制功能(如暂停、播放、上一曲、下一曲)、音量调整以及一些基本的界面元素。下面是一个简单的微信小程序音乐播放器的代码示例,基于WXML和WXSS编写:
**index.wxml:**
```html
<view class="container">
<audio id="musicPlayer" src="{{audioUrl}}" />
<button bindtap="playMusic">播放</button>
<button bindtap="pauseMusic">暂停</button>
<button bindtap="nextSong">下一首</button>
<button bindtap="prevSong">上一首</button>
<slider min="0" max="100" value="{{volume}}" bindchange="setVolume"></slider>
</view>
```
**index.wxss:**
```css
.container {
display: flex;
align-items: center;
justify-content: center;
}
#musicPlayer {
width: 80%;
height: auto;
}
```
**index.js:**
```javascript
Page({
data: {
audioUrl: 'your_music_url', // 替换为你实际的音乐URL
isPlaying: false,
volume: 50,
currentSongIndex: 0,
songs: [
// 你可以添加更多歌曲到这个数组
{ title: '歌名1', url: 'song1_url' },
{ title: '歌名2', url: 'song2_url' }
]
},
playMusic: function() {
if (!this.data.isPlaying) {
this.setData({ isPlaying: true });
this.play();
} else {
this.pause();
}
},
pauseMusic: function() {
this.setData({ isPlaying: false });
},
nextSong: function() {
if (this.data.currentSongIndex < this.data.songs.length - 1) {
this.data.currentSongIndex++;
this.play();
} else {
this.data.currentSongIndex = 0; // 如果到达最后一首,则回到第一首
}
},
prevSong: function() {
if (this.data.currentSongIndex > 0) {
this.data.currentSongIndex--;
this.play();
} else {
this.data.currentSongIndex = this.data.songs.length - 1; // 如果已经到了最前面,就到最后一首
}
},
play: function() {
var musicPlayer = wx.createSelectorQuery().select('#musicPlayer');
musicPlayer.invoke('play', null, { success(res) {
console.log('音乐开始播放');
}}).catch(err => {
console.error('播放失败:', err);
});
},
pause: function() {
var musicPlayer = wx.createSelectorQuery().select('#musicPlayer');
musicPlayer.invoke('pause', null, { success(res) {
console.log('音乐已暂停');
}}).catch(err => {
console.error('暂停失败:', err);
});
},
setVolume: function(e) {
this.setData({ volume: e.detail.value });
}
})
```
请注意,这只是一个基础版本,实际应用中可能还需要处理音频加载失败、音频结束等情况,并且可能需要引入第三方库来更好地管理音频。
阅读全文