1

我怎样才能media.duration生活在一个国家环境中?

现在我无法访问它,即使在尝试更改状态之后

  handleClick(e) {
        e.preventDefault();

    var reader = new FileReader();
    reader.readAsDataURL(this.state.uploadedFile);
    reader.onload = function() {
      var media = new Audio(reader.result);
      media.onloadedmetadata = function() {
        console.log(media.duration); // <-- THIS WORKS!!!!!!!!!!!!!!
      };
    };
    console.log(media.duration) //<------THIS DOES NOT WORK!!!!!!!!!!
    console.log("The link was clicked.");
    console.log(this.state.duration);
}

来自:当我使用文件阅读器读取视频文件时如何获取视频的持续时间?

________________________________________

我试过了,但没有用

    this.setState({duration:media.duration},()=>{
console.log(this.state.duration)
})
4

1 回答 1

0

这是因为您使用的媒体变量超出了范围。请试试这个。

handleClick(e) {
    e.preventDefault();
    var reader = new FileReader();
    reader.readAsDataURL(this.state.uploadedFile);
    reader.onload = () => {
      var media = new Audio(reader.result);
      media.onloadedmetadata = () => {
        console.log(media.duration); // <-- THIS WORKS!!!!!!!!!!!!!!
        this.setState({duration: media.duration});
      };
    };
}
于 2019-08-28T03:25:18.033 回答