赞
踩
目录
- <!-- 在你的页面的 WXML 文件中 -->
-
- <view>
- <button bindtap="playAudio">播放音频</button>
- <button bindtap="pauseAudio">暂停音频</button>
- <button bindtap="stopAudio">停止音频</button>
- </view>
- onLoad(options) {
- this.audioContext = wx.createInnerAudioContext();
- wx.request({
- url: '*******************',//后端获取音频的接口
- method: 'POST',
- responseType: 'arraybuffer',
- success: (res) => {
- if (res.statusCode === 200) {
- // 处理音频文件流
- this.saveAudioFile(res.data);
- } else {
- console.error('Failed to fetch audio file:', res.errMsg);
- }
- },
- fail: function (err) {
- console.error('Request failed:', err);
- }
- });
- )
- .catch(error => {
- console.error('Failed to get token:', error);
- });
- },
- saveAudioFile(arrayBuffer) {
- const fs = wx.getFileSystemManager();
- const filePath = wx.env.USER_DATA_PATH + '/audio-file.mp3'; // 设置文件保存路径
-
- // 直接将 ArrayBuffer 传递给 fs.writeFile
- fs.writeFile({
- filePath: filePath,
- data: arrayBuffer, // 直接使用 ArrayBuffer
- encoding: 'binary', // 指定编码方式
- success: function () {
- console.log('Audio file saved successfully:', filePath);
- },
- fail: function (err) {
- console.error('Failed to save audio file:', err);
- }
- });
- },
- /**
- * 播放音频
- */
- playAudio() {
- this.audioContext.src = wx.env.USER_DATA_PATH + '/audio-file.mp3'; // 设置音频源为本地文件路径
- this.audioContext.play();
- },
- /**
- * 暂停音频
- */
- pauseAudio() {
- this.audioContext.pause();
- },
- /**
- * 停止音频
- */
- stopAudio() {
- this.audioContext.stop();
- },
-
-
- /**
- * 生命周期函数--监听页面卸载
- */
- onUnload() {
- // 页面卸载时停止音频播放并销毁音频上下文
- console.log('页面卸载,停止音频并销毁音频上下文');
- this.audioContext.stop();
- this.audioContext.destroy();
- // 获取文件系统管理器
- const fs = wx.getFileSystemManager();
-
- // 要删除的文件路径
- const filePath = `${wx.env.USER_DATA_PATH}/audio-file.mp3`;
-
- // 删除文件
- fs.unlink({
- filePath,
- success() {
- console.log('文件删除成功');
- },
- fail(err) {
- console.error('文件删除失败', err);
- }
- });
- },
- // pages/list/list.js
- const app=getApp()
- Page({
-
- /**
- * 页面的初始数据
- */
- data: {
- audioContext:null,
- },
-
- /**
- * 生命周期函数--监听页面加载
- */
-
- onLoad(options) {
- this.audioContext = wx.createInnerAudioContext();
- wx.request({
- url: '**************',//后端获取音频接口
- method: 'POST',
- responseType: 'arraybuffer',
- success: (res) => {
- if (res.statusCode === 200) {
- // 处理音频文件流
- this.saveAudioFile(res.data);
- } else {
- console.error('Failed to fetch audio file:', res.errMsg);
- }
- },
- fail: function (err) {
- console.error('Request failed:', err);
- }
- });
- )
- .catch(error => {
- console.error('Failed to get token:', error);
- });
- },
-
- /**
- * 生命周期函数--监听页面初次渲染完成
- */
- onReady() {
-
- },
-
- /**
- * 生命周期函数--监听页面显示
- */
- onShow() {
-
- },
-
- /**
- * 生命周期函数--监听页面隐藏
- */
- onHide() {
-
- },
-
- /**
- * 生命周期函数--监听页面卸载
- */
- onUnload() {
- // 页面卸载时停止音频播放并销毁音频上下文
- console.log('页面卸载,停止音频并销毁音频上下文');
- this.audioContext.stop();
- this.audioContext.destroy();
- // 获取文件系统管理器
- const fs = wx.getFileSystemManager();
-
- // 要删除的文件路径
- const filePath = `${wx.env.USER_DATA_PATH}/audio-file.mp3`;
-
- // 删除文件
- fs.unlink({
- filePath,
- success() {
- console.log('文件删除成功');
- },
- fail(err) {
- console.error('文件删除失败', err);
- }
- });
- },
-
- /**
- * 页面相关事件处理函数--监听用户下拉动作
- */
- onPullDownRefresh() {
-
- },
-
- /**
- * 页面上拉触底事件的处理函数
- */
- onReachBottom() {
-
- },
-
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage() {
-
- },
- saveAudioFile(arrayBuffer) {
- const fs = wx.getFileSystemManager();
- const filePath = wx.env.USER_DATA_PATH + '/audio-file.mp3'; // 设置文件保存路径
-
- // 直接将 ArrayBuffer 传递给 fs.writeFile
- fs.writeFile({
- filePath: filePath,
- data: arrayBuffer, // 直接使用 ArrayBuffer
- encoding: 'binary', // 指定编码方式
- success: function () {
- console.log('Audio file saved successfully:', filePath);
- },
- fail: function (err) {
- console.error('Failed to save audio file:', err);
- }
- });
- },
- /**
- * 播放音频
- */
- playAudio() {
- this.audioContext.src = wx.env.USER_DATA_PATH + '/audio-file.mp3'; // 设置音频源为本地文件路径
- this.audioContext.play();
- },
- /**
- * 暂停音频
- */
- pauseAudio() {
- this.audioContext.pause();
- },
-
- /**
- * 停止音频
- */
- stopAudio() {
- this.audioContext.stop();
- },
- })
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。