useAudio

WARNING

暂时不支持小程序端

使用音频

Usage

基础

import { useAudio } from '@/uni_modules/tob-use'

// 播放列表
const playlist = ['src1', 'src2', '...']

const { 
    prev,
    next,
    toggle,
} = useAudio(playlist)

toggle() // 播放,开
toggle() // 暂停,关
toggle() // 播放,开
// ... 不断对当前状态取反

toggle(false) // 暂停
toggle(true) // 播放

toggle(true, 'new src') // 播放新的音频

prev() // 上一首
next() // 下一首

prev(2) // 上上首
next(2) // 下下首

其他

import { useAudio } from '@/uni_modules/tob-use'

// 播放列表
const playlist = ['src1', 'src2', '...']

// useAudio 的第二参数可接受所有的原生配置,例如 src, autoplay, loop 等
const {
    src,
    play,
    stop,
    seek,
    reset,
    index,
    audio,
    pause,
    replay,
    destroy,
    buffered,
    isActive,
    duration,
    isWaiting,
    currentTime,
    normalizedDuration,
    normalizedCurrentTime
} = useAudio(playlist, { 
    autoplay: true // 设置自动播放
})

play('your src') // 播放

pause() // 暂停

seek(20) // 跳转到对应位置

reset() // 重置

replay() // 重播

stop() // 停止

destroy() // 销毁

isActive.value // 是否播放中

isWaiting.value // 是否加载数据中

duration.value // 总时长

currentTime.value // 当前进度

buffered.value // 当前缓冲点

src.value // 当前播放的音频地址

index.value // 当前播放的 index

audio // 原生 audio 对象

normalizedDuration.value // 规范化后的时长,即 00:00 格式
normalizedCurrentTime.value // 规范化后的当前进度,即 00:00 格式


注意事项

changing

结合原生的 slider 组件的 changing 时,为了更好的性能,你需要注意 seek 的使用

<script setup>
import { useAudio } from "@/uni_modules/tob-use"

const {
    // ...
    seek
} = useAudio()

const onSliderChange = e => seek(e.detail.value)
// seek 的第二个参数必须设置为 true,标识被用于 changing 事件
const onSliderChanging = e => seek(e.deatil.value, true)
</script>

<template>
    <view>
        <slider @change="onSliderChange" @changing="onSliderChanging" /> 
    </view>
</template>
Last Updated:
Contributors: markthree