【问题标题】:DART AudioBufferSourceNode onEnded event not workingDART AudioBufferSourceNode onEnded 事件不起作用
【发布时间】:2024-08-18 21:35:02
【问题描述】:

我正在尝试使用 DART 使用 HTML5 网络音频 API,但无法弄清楚为什么 onEnded 事件不起作用。

这里是代码

import 'dart:html';
import 'dart:web_audio';
import 'dart:async';
import 'dart:typed_data';
//import 'package:web_ui/web_ui.dart';  
//import 'dart:io';

class AudioPlayer {
  AudioContext audioContext;

  AudioPlayer() {
     audioContext = new AudioContext();
     loadChunks();
  }

  loadChunks() {
    HttpRequest request = new HttpRequest();
    request.open("GET", "Say.mp3", async: true);
    request.responseType = "arraybuffer";
    request.onLoad.listen((e) {
       audioContext.decodeAudioData(request.response)
       .then((AudioBuffer audioBuffer) {
         AudioBufferSourceNode audioBufferSourceNode = audioContext.createBufferSource()
           ..buffer = audioBuffer
           ..connectNode(audioContext.destination)
           ..start(0)
           ..loop = false
           ..onEnded.listen((e) {
             print("TES");
           });
      });
    });
    request.send();
  }
}

代码有问题吗?请提出建议。

【问题讨论】:

    标签: html dart web-audio-api dart-html


    【解决方案1】:

    尝试按照记录的拼写:onended

    【讨论】: