uni-app中uni.createInnerAudioContext()的startTime开始播放位置和seek跳转播放位置失效

uni-app中uni.createInnerAudioContext()的startTime开始播放位置和seek跳转播放位置失效

开发环境 版本号 项目创建方式
uniapp/App - HBuilderX
## 示例代码:

```data{AUDIO:uni.createInnerAudioContext()}
this.AUDIO.startTime = 12;
this.AUDIO.play();

操作步骤:

预期结果:

实际结果:

bug描述:

this.AUDIO.startTime = 12;
this.AUDIO.play();
每次都是从头播放
播放中执行
this.AUDIO.seek 也是无法执行
4 回复

用示例代码hello uni-app能出现你的问题吗? startTime问题已复现,seek测试正常,已反馈给相关人员排查 【bug优先处理规则】https://ask.dcloud.net.cn/article/38139


HBuilderX alpha 3.4.13 已修复startTime问题

请问解决了吗?我也遇到了

uni-app 中使用 uni.createInnerAudioContext() 时,startTimeseek 方法在某些情况下可能会失效。以下是一些可能的原因和解决方案:

1. 音频格式问题

  • 原因: 某些音频格式可能不支持 startTimeseek 方法。
  • 解决方案: 确保音频文件是支持的格式(如 MP3、AAC 等)。可以尝试使用不同的音频文件进行测试。

2. 音频文件未完全加载

  • 原因: 如果音频文件未完全加载,startTimeseek 方法可能无法正常工作。
  • 解决方案: 在调用 startTimeseek 之前,确保音频文件已经加载完成。可以通过监听 onCanplay 事件来确保音频文件已准备好。
const innerAudioContext = uni.createInnerAudioContext();
innerAudioContext.src = 'your-audio-file.mp3';
innerAudioContext.onCanplay(() => {
    innerAudioContext.startTime = 10; // 设置开始播放位置
    innerAudioContext.play();
});

3. 平台差异

  • 原因: 不同平台(如 iOS 和 Android)对 startTimeseek 的支持可能存在差异。
  • 解决方案: 检查不同平台上的表现,确保代码在所有目标平台上都能正常工作。如果某个平台不支持,可能需要针对该平台进行特殊处理。

4. 代码逻辑问题

  • 原因: 代码逻辑可能存在问题,导致 startTimeseek 方法未正确调用。
  • 解决方案: 检查代码逻辑,确保在正确的时间点调用 startTimeseek 方法。
const innerAudioContext = uni.createInnerAudioContext();
innerAudioContext.src = 'your-audio-file.mp3';
innerAudioContext.play();
innerAudioContext.seek(10); // 跳转到指定位置

5. 版本问题

  • 原因: uni-appuni.createInnerAudioContext() 的某些版本可能存在 bug,导致 startTimeseek 方法失效。
  • 解决方案: 确保使用的是最新版本的 uni-app,并检查是否有相关的 bug 修复。

6. 网络问题

  • 原因: 如果音频文件是通过网络加载的,网络延迟或中断可能导致 startTimeseek 方法失效。
  • 解决方案: 确保网络连接稳定,或者将音频文件下载到本地后再进行播放。

7. 调试和日志

  • 原因: 如果以上方法都无法解决问题,可能需要进一步调试。
  • 解决方案: 在代码中添加日志,检查 startTimeseek 方法是否被正确调用,并查看是否有错误信息。
const innerAudioContext = uni.createInnerAudioContext();
innerAudioContext.src = 'your-audio-file.mp3';
innerAudioContext.onError((err) => {
    console.error('Audio error:', err);
});
innerAudioContext.play();
innerAudioContext.seek(10); // 跳转到指定位置
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!