小程序
小游戏
企业微信
微信支付
扫描小程序码分享
安卓端InnerAudioContext.onTimeUpdate再次调用只触发一次回
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
我在andorid MEIZU E3armeabi上发现同样的问题
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
安卓端 较短的音频 几秒钟的会发生这种问题
要不你单独发个帖吧,后续好跟进些,提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
你好,https://developers.weixin.qq.com/community/develop/doc/00068a72a2c588d3c6c8edeac56800?fromCreate=1
收到,我们看下,有进展在帖子同步
请求帮助:
目标:onTimeUpdate能控制slide进度误差在slide的100刻度里面为5,onStop能正确的执行,并将播放按钮和slide初始化到起点位置。
问题:onTimeUpdate音频实时回调currentTime会出现0、缺个几十ms、或者和音频长度一致、获取和音频时长差距过大计算slider有问题,而且onStop监听不到已经播放结束了。(进度条max=100)
功能:语音录入转文字,当前语音可播放。
语音转文字回调结束后将文字放到表单文本控件中【语音转文字操作】,将录音取出音频api初始化设置【获取时长操作】。
使用音频播放实时回调api onTimeUpdate更新slide进度,真机测试currentTime 的值千奇百怪,有播放结束是0、等于时长、差XXms(这个变化太大,我只好计算出slide值大于95就算结束了,可是真机测试发现有大于90和95的【录音时长2-5秒】)
音频stop回调没有反应,真机怎么测试都没有调用。
目前实现:onLoad中代码():
// 识别结束事件
pluginRecorderManager.onStop = (res) => {
console.log(
"onStop"
, res)
const text = res.result;
// 设置最大字符串长度(为-1时,则不限制)
let textAreaMaxLen = that.data.textAreaMaxLen;
innerAudioContext.stop();
innerAudioContext.src = res.tempFilePath;
// 文本长度
let textAreaCurrentLen = text.length;
that.setData({
textAreaMaxLen: textAreaMaxLen,
textAreaCurrentLen: textAreaCurrentLen,
textAreaText: text,
tempFilePath: res.tempFilePath,
recordTransEnd:
true
});
}
innerAudioContext.onCanplay(() => {
innerAudioContext.duration;
setTimeout(() => {
processtext: util.formatTimeFuc(innerAudioContext.duration)
})
'初始化时长'
, util.formatTimeFuc(innerAudioContext.duration))
}, 1000)
pluginRecorderManager.onError = (res) => {
console.log(res)
innerAudioContext.onStop(() => {
'播放完毕'
)
innerAudioContext.onTimeUpdate(() => {
const duration = innerAudioContext.duration;
let currentTime = innerAudioContext.currentTime;
let slidervalue = 0;
if
(duration == 0 || currentTime == 0) {
currentTime = 0;
else
(currentTime == duration){
slidervalue = 0;
{
slidervalue = Math.round((currentTime / duration) * 100);
(slidervalue > 95) {
playAudio: {
currentprocesstext: util.formatTimeFuc(currentTime),
slidervalue: slidervalue
'播放中。。。'
, duration, currentTime, slidervalue)
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
我在andorid MEIZU E3armeabi上发现同样的问题
你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
安卓端 较短的音频 几秒钟的会发生这种问题
要不你单独发个帖吧,后续好跟进些,提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
你好,https://developers.weixin.qq.com/community/develop/doc/00068a72a2c588d3c6c8edeac56800?fromCreate=1
收到,我们看下,有进展在帖子同步
请求帮助:
目标:onTimeUpdate能控制slide进度误差在slide的100刻度里面为5,onStop能正确的执行,并将播放按钮和slide初始化到起点位置。
问题:onTimeUpdate音频实时回调currentTime会出现0、缺个几十ms、或者和音频长度一致、获取和音频时长差距过大计算slider有问题,而且onStop监听不到已经播放结束了。(进度条max=100)
功能:语音录入转文字,当前语音可播放。
语音转文字回调结束后将文字放到表单文本控件中【语音转文字操作】,将录音取出音频api初始化设置【获取时长操作】。
使用音频播放实时回调api onTimeUpdate更新slide进度,真机测试currentTime 的值千奇百怪,有播放结束是0、等于时长、差XXms(这个变化太大,我只好计算出slide值大于95就算结束了,可是真机测试发现有大于90和95的【录音时长2-5秒】)
音频stop回调没有反应,真机怎么测试都没有调用。
目前实现:onLoad中代码():
// 识别结束事件
pluginRecorderManager.onStop = (res) => {
console.log(
"onStop"
, res)
const text = res.result;
// 设置最大字符串长度(为-1时,则不限制)
let textAreaMaxLen = that.data.textAreaMaxLen;
innerAudioContext.stop();
innerAudioContext.src = res.tempFilePath;
// 文本长度
let textAreaCurrentLen = text.length;
that.setData({
textAreaMaxLen: textAreaMaxLen,
textAreaCurrentLen: textAreaCurrentLen,
textAreaText: text,
tempFilePath: res.tempFilePath,
recordTransEnd:
true
});
}
innerAudioContext.onCanplay(() => {
innerAudioContext.duration;
setTimeout(() => {
that.setData({
processtext: util.formatTimeFuc(innerAudioContext.duration)
})
console.log(
'初始化时长'
, util.formatTimeFuc(innerAudioContext.duration))
}, 1000)
})
pluginRecorderManager.onError = (res) => {
console.log(res)
}
innerAudioContext.onStop(() => {
console.log(
'播放完毕'
)
})
innerAudioContext.onTimeUpdate(() => {
const duration = innerAudioContext.duration;
let currentTime = innerAudioContext.currentTime;
let slidervalue = 0;
if
(duration == 0 || currentTime == 0) {
currentTime = 0;
}
else
if
(currentTime == duration){
currentTime = 0;
slidervalue = 0;
}
else
{
slidervalue = Math.round((currentTime / duration) * 100);
if
(slidervalue > 95) {
currentTime = 0;
slidervalue = 0;
}
}
that.setData({
playAudio: {
currentprocesstext: util.formatTimeFuc(currentTime),
slidervalue: slidervalue
}
})
console.log(
'播放中。。。'
, duration, currentTime, slidervalue)
})