收藏
回答

getBackgroundAudioManager后台播放抛出错误信息

问题模块 API/组件名称 终端类型 微信版本 基础库版本
API和组件 getBackgroundAudioManager 客户端 6.6.1 1.7.1

问题描述:

通过wx.getBackgroundAudioManager播放背景音频文件,在真机调试下,程序置于前台自动播放没有问题,将程序置于后台时,自动播放会出现此问题,再将程序切换到前台可以正常播放









最后一次编辑于  2018-01-05  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

2 个回答

  • Sam
    Sam
    2018-01-05

    模板内容:

    <!--page/Demo/index.wxml-->
    <button type="primary" bindtap="audioPlay">播放</button>
    <button type="primary" bindtap="audioPause">暂停</button>
    <button type="primary" bindtap="audioStop">停止</button>
    <button type="primary" bindtap="audio24">设置当前播放时间为24秒</button>
    <button type="primary" bindtap="audioStart">回到开头</button>

    JS示例代码:


    // page/Demo/index.js
    Page({
        audioCtx: null,
        ind: 0,
        coverUrl: "http://image.hhdd.com/books/cover_rec/af2ee001-d7a9-46e5-a2e3-bbc8fc13d433.jpg",
        name: "我爸爸",
        totalCount: 24,
        musicList: [
            {
                "music": "http://book.hhdd.com/share/51681/pages/54f07360-d3b4-4c16-b3b2-37c83d96eba2.mp3",
                "ind": 1
            },
            {
                "music": "",
                "ind": 2
            },
            {
                "music": "http://book.hhdd.com/share/51681/pages/a23674c8-e4fa-4dfa-ac95-ebb1fabe301c.mp3",
                "ind": 3
            },
            {
                "music": "http://book.hhdd.com/share/51681/pages/98627940-d04d-4446-8b95-bc708831b944.mp3",
                "ind": 4
            },
            {
                "music": "http://book.hhdd.com/share/51681/pages/63c2e38f-4ae6-4c78-9ac1-5dc97d3037ff.mp3",
                "ind": 5
            },
            {
                "music": "http://book.hhdd.com/share/51681/pages/5e1ec76a-5872-4a8f-b427-7b87ce429bb0.mp3",
                "ind": 6
            }
        ],
        /**
         * 生命周期函数--监听页面初次渲染完成
         */
        onReady() {
            console.log("onReady");
            // 背景音频播放器事件列表
            const events = {
                onCanplay: null,
                onPlay: null,
                onPause: null,
                onStop: null,
                onEnded: () => {
                    this.next();
                },
                // onTimeUpdate: null,
                onPrev: null,
                onNext: null,
                onError: null,
                onWaiting: null,
            };
            // 获取背景音频控制器
            this.audioCtx = wx.getBackgroundAudioManager();
            // 添加事件处理
            Object.keys(events).forEach(k => {
                if (!events[k]) {
                    this.audioCtx[k]((e) => {
                        console.log(k, e);
                    });
                    return;
                }
                this.audioCtx[k](events[k]);
            });
     
            this.audioPlay();
        },
        next() {
            this.ind++;
            if (this.ind >= this.musicList.length) return;
            this.audioPlay();
        },
        audioPlay() {
            const options = {
                title: `${this.name}-${this.ind + 1}`,
                epname: `${this.ind}-${this.totalCount}`,
                singer: '咔哒故事',
                coverImgUrl: this.coverUrl,
                src: this.musicList[this.ind].music
            };
            // 音频文件不存在,停留1s播放下一首
            this.nextTimeout && clearTimeout(this.nextTimeout);
            if (!options.src) {
                console.log("there is no music on the current page, wait for 1s to play the next page.");
                this.nextTimeout = setTimeout(() => {
                    this.next();
                }, 1000);
                return;
            }
            console.log(options);
            setTimeout(() => {
                Object.keys(options).forEach(k => {
                    this.audioCtx[k] = options[k];
                });
                this.audioCtx.play();
            }, 1000);
             
        },
        audioPause() {
            this.audioCtx.pause();
        },
        audioStop() {
            this.audioCtx.stop();
        },
        audio24() {
            this.audioCtx.seek(24);
            this.audioCtx.play();
        },
        audioStart() {
            this.audioCtx.seek(0);
        }
    });


    2018-01-05
    赞同
    回复
  • 竹影
    竹影
    2018-03-28

    问题解决了吗?

    2018-03-28
    赞同
    回复