先加load()

myaudio.load();

myaudio.oncanplay = function () {
alert(myaudio.duration);
}

load() 方法用于在更改来源或其他设置后对音频/视频元素进行更新

duration 的值可以在 canplay 事件发生之前的 durationchange 阶段中获取。

myaudio.ondurationchange= function () {
alert(myaudio.duration);
}

如果在Vue中:

<template>
  <audio id="audioPlay" :src="isPlay" @canplay="playing()" @onended="ended()" v-el:audio></audio>
</template> <script> export default {
computed: {
isPlay() {
return this.$store.state.audioSrc;
}
},
methods: {
playing() {
console.log('audio paly');
},
ended() {
console.log('audio end');
}
},
}
</script>

也可以试试下面这种方法

var load = (musicSrc) => new Promise(resolve => {
let audio = new Audio()
audio.src = musicSrc
audio.addEventListener('canplay', resolve);
})

当音频/视频处于加载过程中时,会依次发生以下事件:

loadstart
durationchange
loadedmetadata
loadeddata
progress
canplay
canplaythrough

ios微信下vue项目组件切换并自动播放音频的解决方案

npm包:audio-loader了解下(最后我在微信中遇到的IOS获取不到duration,就是直接通过audio-loader包解决的。)

var load = require('audio-loader')

// load one file
load('http://example.net/audio/file.mp3').then(function (buffer) {
console.log(buffer) // => <AudioBuffer>
})
import load from 'audio-loader'

load(this.music).then((function (buffer) {
_self.$refs.totalTime.textContent = _self.formatTime(buffer.duration)
}))

微信 audio 获取 duration 为 NaN 的解决方法的更多相关文章

  1. Taro开发微信小程序遇到的问题和解决方法

    1.scroll-view 置顶, 给设置scroll-top为0无效问题? 解决方案: 不触发置顶问题,需要给scroll-top一个设置接近0的随机数,Math.random() 2.scroll ...

  2. 关于获取URL中传值的解决方法--升级版

    这次页面之间的传值是升级版本,为什么是升级版本呢,因为这次页面的传值不一样了.大家可以看一下我原来的文章<关于获取URL中传值的解决方法> 其实上次就已经比较清楚的介绍了页面之间的传值,但 ...

  3. 微信小程序(微信应用号)开发ide安装解决方法

    这两天整个技术圈都炸锅了,微信小程序(微信应用号)发布内测,首批200家收到邀请,但是没受邀请的同学,也不用担心,下面介绍一下解决方法. 首先需要下载ide,昨天只需要下载0.9版本的编辑器并替换文件 ...

  4. PHP微信公众号支付弹出“NaN:undefined”解决方法

    最近研究php微信支付开发,从微信官方下载了微信支付的demo后,测试时总是弹出NaN:Undefined这样的错误提示.不过这个并不影响支付的操作,支付成功后依然可以正常获取到支付状态,并进行跳转. ...

  5. 微信 php 获取token 第二次失败解决办法

    第一次成功了,第二次总是失败,很简单,session问题 clearstatcache(); $_SESSION = ''; $_COOKIE = ''; //获得参数 signature nonce ...

  6. 微信小程序审核不通过的解决方法

    前言 近来,微信小程序一直活跃在开发者的眼球中.很多开发者都投身微信小程序的开发中,而这些开发者,总是需要面对最后一道难题:如何以一种优雅的姿势来通过微信官方的审核.本文基于几天前提交审核的一次总结, ...

  7. 微信H5支付 遇到坑的一些解决方法

    解决办法 1. 商家参数格式有误,请联系商家解决 a.对于前后端分离的开发模式 前端发起请求 服务端请求微信h5支付统一下单接口 返回参数mweb_url 给前端 然后前端调起微信h5支付 b.注意的 ...

  8. go get 获取被墙依赖包解决方法

    前言: 随着 go1.11 的发布,go 官方引入了 go module 来解决依赖管理问题,go module 被集成到原生的 go cmd 中,但是如果你的代码库在$GOPATH中,go1.11 ...

  9. linux虚拟机获取不到ip的解决方法 --

    问题描述: 在win10操作系统上,安装了centos7 虚拟机,安装后,用wifi网络可以获取ip,但是切换到手机热点或有线网络就获取不到ip 解决办法: 按照一般的修改ONBOOT =yes, 然 ...

随机推荐

  1. ARM承认芯片漏洞:披露修复细节

    在谷歌安全研究人员曝光了影响整个芯片产业的CPU设计漏洞后,ARM的Cortex系列处理器也未能逃过一劫.在一篇致开发者的博客文章中,该公司披露了三个已知漏洞的细节——其中两个与Spectre有关.第 ...

  2. 【BZOJ1834】[ZJOI2010]network 网络扩容 最大流+最小费用流

    [BZOJ1834][ZJOI2010]network 网络扩容 Description 给定一张有向图,每条边都有一个容量C和一个扩容费用W.这里扩容费用是指将容量扩大1所需的费用.求: 1. 在不 ...

  3. thinkphp---定义前台视图模板

    具体可以参考: http://document.thinkphp.cn/manual_3_2.html#template_define 方法一:在入口文件中定义 // 定义模板路径 define(&q ...

  4. vector库的用法

    C++内置的数组支持容器的机制,但是它不支持容器抽象的语义.要解决此问题我们自己实现这样的类.在标准C++中,用容器向量(vector)实现.容器向量也是一个类模板.标准库vector类型使用需要的头 ...

  5. Jmeter性能测试实践之java请求

     前言 Apache Jmeter是开源.易用的性能测试工具,之前工作中用过几次对http请求进行性能测试,对jmeter的基本操作有一些了解.最近接到开发的对java请求进行性能测试的需求,所以需要 ...

  6. 在github上参与开源项目日常流程

    转载自:http://blog.csdn.net/five3/article/details/9307041 1. 注册帐号 打开https://github.com/,填写注册信息并提交. 2. 登 ...

  7. Code Forces 149DColoring Brackets(区间DP)

     Coloring Brackets time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  8. poj1722 SUBTRACT【线性DP】

    SUBTRACT Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 2037   Accepted: 901   Special ...

  9. 南京网络赛J-Sum【数论】

    A square-free integer is an integer which is indivisible by any square number except 11. For example ...

  10. sosi-statistics

    set echo offset scan onset lines 150set pages 66set verify offset feedback offset termout offcolumn ...