百度智能小程序 InnerAudioContext

2020-09-05 14:18 更新

InnerAudioContext

解釋: swan.createInnerAudioContext 的返回值。

屬性說(shuō)明

屬性名 說(shuō)明
InnerAudioContext.play 播放
InnerAudioContext.pause 暫停
InnerAudioContext.stop 停止
InnerAudioContext.seek 跳轉(zhuǎn)到指定位置(單位:s)
InnerAudioContext.destroy 銷毀當(dāng)前實(shí)例
InnerAudioContext.onCanplay 音頻進(jìn)入可以播放狀態(tài)
InnerAudioContext.onPlay 音頻播放事件
InnerAudioContext.onPause 音頻暫停事件
InnerAudioContext.onStop 音頻停止事件
InnerAudioContext.onEnded 音頻自然播放結(jié)束事件
InnerAudioContext.onTimeUpdate 音頻進(jìn)度更新事件
InnerAudioContext.onError 音頻播放錯(cuò)誤事件
InnerAudioContext.onWaiting 音頻加載中事件
InnerAudioContext.onSeeking 音頻進(jìn)行 seek 操作事件
InnerAudioContext.onSeeked 音頻完成 seek 操作事件
InnerAudioContext.offCanplay 取消監(jiān)聽(tīng) onCanplay 事件
InnerAudioContext.offPlay 取消監(jiān)聽(tīng) onPlay 事件
InnerAudioContext.offPause 取消監(jiān)聽(tīng) onPause 事件
InnerAudioContext.offStop 取消監(jiān)聽(tīng) onStop 事件
InnerAudioContext.offEnded 取消監(jiān)聽(tīng) onEnded 事件
InnerAudioContext.offTimeUpdate 取消監(jiān)聽(tīng) onTimeUpdate 事件
InnerAudioContext.offError 取消監(jiān)聽(tīng) offError 事件
InnerAudioContext.offWaiting 取消監(jiān)聽(tīng) onWaiting 事件
InnerAudioContext.offSeeking 取消監(jiān)聽(tīng) onSeeking 事件
InnerAudioContext.offSeeked 取消監(jiān)聽(tīng) onSeeked 事件

方法參數(shù)

方法 參數(shù) 必填 說(shuō)明

src

String

音頻的數(shù)據(jù)鏈接,用于直接播放,僅支持絕對(duì)路徑。

startTime

Number

開(kāi)始播放的位置(單位:s),默認(rèn) 0 。

autoplay

Boolean

是否自動(dòng)開(kāi)始播放,默認(rèn) false 。

loop

Boolean

是否循環(huán)播放,默認(rèn) false。

obeyMuteSwitch

Boolean

是否遵循系統(tǒng)靜音開(kāi)關(guān),默認(rèn) true,當(dāng)此參數(shù)為 false 時(shí),即使用戶打開(kāi)了靜音開(kāi)關(guān),也能繼續(xù)發(fā)出聲音。

duration

Number

當(dāng)前音頻的長(zhǎng)度(單位:s),只有在當(dāng)前有合法的 src 時(shí)返回 。

currentTime

Number

當(dāng)前音頻的播放位置(單位:s),只有在當(dāng)前有合法的 src 時(shí)返回,時(shí)間不取整,保留小數(shù)點(diǎn)后 6 位 。

paused

Boolean

當(dāng)前狀態(tài):true 表示暫?;蛲V梗琭alse 表示正在播放。

volume

Number

音量,范圍 0~1。

支持格式

格式 iOS Android

flac

amr

wma

ogg

ape

mp4

m4a

wav

mp3

aac

aiff

caf

示例


圖片示例

代碼示例 1 :實(shí)例方法全集

在開(kāi)發(fā)者工具中打開(kāi)

<view class="wrap">
    <view class="card-area">
        <button type="primary" bindtap="play">play</button>
        <button type="primary" bindtap="pause">pause</button>
        <button type="primary" bindtap="stop">stop</button>
        <button type="primary" bindtap="seek">seek</button>
        <button type="primary" bindtap="destroy">destroy</button>
    </view>
</view>
Page({
    onLoad() {
        //  每次觸發(fā)就會(huì)注冊(cè)一次回調(diào)事件,所以只需把所有回調(diào)寫在onLoad中即可
        const innerAudioContext = swan.createInnerAudioContext();
        innerAudioContext.src = 'https://b.bdstatic.com/miniapp/images/yanyuan.mp3';
        innerAudioContext.autoplay = false;

        innerAudioContext.onPlay(res => {
            swan.showToast({
                title: '音頻播放',
                icon: 'none'
            });
            console.log('onPlay', res);
        });

        innerAudioContext.onCanplay(res => {
            swan.showToast({
                title: '音頻進(jìn)入可播放狀態(tài)',
                icon: 'none'
            });
            console.log('onCanplay', res);
        });

        innerAudioContext.onPause(res => {
            swan.showToast({
                title: '音頻暫停',
                icon: 'none'
            });
            console.log('onPause', res);
        });

        innerAudioContext.onStop(res => {
            swan.showToast({
                title: '音頻停止',
                icon: 'none'
            });
            console.log('onStop', res);
        });

        innerAudioContext.onEnded(res => {
            swan.showToast({
                title: '音頻自然播放結(jié)束',
                icon: 'none'
            });
            console.log('onEnded', res);
        });

        innerAudioContext.onTimeUpdate(res => {
            console.log('onTimeUpdate', res);
        });

        innerAudioContext.onError(err => {
            swan.showModal({
                title: '音頻播放錯(cuò)誤',
                content: JSON.stringify(err)
            });
            console.log('onError', err);
        });

        innerAudioContext.onWaiting(res => {
            swan.showToast({
                title: '音頻加載中......',
                icon: 'none'
            });
            console.log('onWaiting', res);
        });

        innerAudioContext.onWaiting(res => {
            swan.showToast({
                title: '音頻加載中......',
                icon: 'none'
            });
            console.log('onWaiting', res);
        });

        this.innerAudioContext = innerAudioContext;
    },
    play() {
        this.innerAudioContext.play();
    },
    pause() {
        this.innerAudioContext.pause();
    },
    stop() {
        this.innerAudioContext.stop();
    },
    seek() {
        this.innerAudioContext.seek(120);
        swan.showToast({
            title: '跳轉(zhuǎn)到音頻120s處',
            icon: 'none'
        });
    },
    destroy() {
        this.innerAudioContext.destroy();
        swan.showToast({
            title: '音頻銷毀,需要重新觸發(fā)創(chuàng)建時(shí)期',
            icon: 'none'
        });
    },
    offTimeUpdate() {
        this.innerAudioContext.offTimeUpdate(res => {
            swan.showToast({
                title: 'offTimeUpdate',
                icon: 'none'
            });
            console.log('offTimeUpdate', res);
        });
    }
});

代碼示例 2 - 屬性全集

在開(kāi)發(fā)者工具中打開(kāi)

Page({
    onLoad() {
        const innerAudioContext = swan.createInnerAudioContext();
        innerAudioContext.src = 'http://vd3.bdstatic.com/mda-ic7mxzt5cvz6f4y5/mda-ic7mxzt5cvz6f4y5.mp3';
        innerAudioContext.startTime = 120;
        innerAudioContext.autoplay = true;
        innerAudioContext.loop = true;
        // 一般設(shè)置obeyMuteSwitch為false,否則用戶在系統(tǒng)靜音的情況下,會(huì)認(rèn)為api不能播放;
        innerAudioContext.obeyMuteSwitch = false;
        innerAudioContext.duration = 120;
        innerAudioContext.currentTime = 90;
        innerAudioContext.paused = true;
        innerAudioContext.volume = 0.5;
    }
});


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)