uni.createInnerAudioContext()第一次获取currentTime 是0 是为什么
时间: 2024-04-18 21:26:14 浏览: 280
第一次获取 `currentTime` 为0,是因为创建 `InnerAudioContext` 对象时,该对象的初始状态为停止状态,且尚未开始播放音频。因此,`currentTime` 返回的是音频的当前播放时间,而在未开始播放时,时间自然为0。如果你希望获取到当前音频的准确播放时间,需要在音频开始播放后再获取 `currentTime` 的值。
相关问题
再添加 uni.createInnerAudioContext() 一些监听事件,如:onTimeUpdate 等
如果你需要在 Uni-app 中使用 Vue-router 并添加 `uni.createInnerAudioContext()` 和一些监听事件,可以按照以下步骤进行操作:
1. 首先,按照之前的步骤在项目中安装和配置 Vue-router。
2. 在需要使用音频播放的组件中,使用 `setup` 语法糖引入 `uni.createInnerAudioContext()` 和其他需要的函数和数据。
```vue
<template>
<div>
<button @click="play">播放</button>
<button @click="pause">暂停</button>
<button @click="stop">停止</button>
</div>
</template>
<script>
import { ref, onMounted, onUnmounted } from 'vue'
export default {
setup() {
const audio = uni.createInnerAudioContext()
const currentTime = ref(0)
const play = () => {
audio.src = 'path/to/audio.mp3'
audio.play()
}
const pause = () => {
audio.pause()
}
const stop = () => {
audio.stop()
}
const handleTimeUpdate = () => {
currentTime.value = audio.currentTime
}
onMounted(() => {
audio.onTimeUpdate(handleTimeUpdate)
})
onUnmounted(() => {
audio.destroy()
})
return {
play,
pause,
stop,
currentTime
}
}
}
</script>
<style scoped>
/* 组件的样式 */
</style>
```
3. 在需要使用路由的页面中,按照之前的步骤配置 Vue-router,并在组件中使用 `<router-link>` 和 `<router-view>`。
```vue
<template>
<div>
<router-link to="/">Home</router-link>
<router-link to="/about">About</router-link>
<router-view></router-view>
</div>
</template>
<script>
export default {
// 页面的逻辑
}
</script>
<style scoped>
/* 页面的样式 */
</style>
```
这样,你就成功地在 Uni-app 中使用了 Vue-router,并在音频播放组件中添加了 `uni.createInnerAudioContext()` 和一些监听事件。记得根据你的项目需求进行相应的配置和修改。
使用wx.createinneraudiocontext()实现音乐播放
好的,这是一个关于小程序中使用wx.createInnerAudioContext()实现音乐播放的示例代码:
```
// 创建内部audio上下文对象
const innerAudioContext = wx.createInnerAudioContext()
// 设置音频资源地址
innerAudioContext.src = 'http://music.163.com/song/media/outer/url?id=437859522.mp3'
// 播放音频
innerAudioContext.play()
// 监听音频播放进度
innerAudioContext.onTimeUpdate(() => {
// 获取音频播放进度
const currentTime = innerAudioContext.currentTime
const duration = innerAudioContext.duration
const percent = Math.ceil(currentTime / duration * 100)
console.log(`当前播放进度:${percent}%`)
})
// 监听音频播放结束
innerAudioContext.onEnded(() => {
console.log('音频播放结束')
})
```
你可以将上述代码复制到小程序的js文件中,然后将音频资源地址设置为你自己的音频文件地址,就可以实现音乐播放了。在代码中,我们使用了wx.createInnerAudioContext()创建了一个内部audio上下文对象,然后设置了音频资源地址,并通过innerAudioContext.play()方法播放音频。同时,我们还监听了音频播放进度和结束事件,可以根据需要进行相应的处理。
阅读全文