サーバーから.mp3ファイルを取得して再生するDart Webアプリケーションを作成しました。私はFlutterを使用してモバイル版を作成しようとしています。私はダーツを知っている:web_audioは、Webアプリケーションのための主要なオプションですが、Flutterは私のSDKでそれを見つけることができません。フラッタアプリのための私のコードのweb_audio部品:Flutterアプリケーションで.mp3ファイルを再生するにはどうすればよいですか?
import 'dart:html';
import 'dart:convert';
import 'dart:web_audio';
AudioContext audioContext;
main() async {
audioContext = new AudioContext();
var ul = (querySelector('#songs') as UListElement);
var signal = await HttpRequest.getString('http://10.0.0.6:8000/api/filelist');
// Map json = JSON.decode(signal);
// for (Map file in json['songs']) {
print("signal: $signal");
Map json = JSON.decode(signal);
for (Map file in json['songs']) {
var li = new LIElement()
..appendText(file['title']);
var button = new ButtonElement();
button.setAttribute("id", "#${file['file']}");
button.appendText("Play");
li.append(button);
new Song(button, file['file']);
ul.append(li);
}
}
class Song {
ButtonElement button;
bool _playing = false;
// AudioContext _audioContext;
AudioBufferSourceNode _source;
String title;
Song(this.button, this.title) {
button..onClick.listen((e) => _toggle());
}
_toggle() {
_playing = !_playing;
_playing ? _start() : _stop();
}
_start() {
return HttpRequest
.request("http://10.0.0.6:8000/music/$title", responseType: "arraybuffer")
.then((HttpRequest httpRequest) {
return audioContext
.decodeAudioData(httpRequest.response)
.then((AudioBuffer buffer) {
_source = audioContext.createBufferSource();
_source.buffer = buffer;
_source.connectNode(audioContext.destination);
_source.start(0);
button.text = "Stop";
_source.onEnded.listen((e){
_playing = false;
button.text = "Play";
});
});
});
}
_stop() {
_source.stop(0);
button.text = "Play";
}
}
がどのように私はダーツを書き換えます:私は、私はJavascriptに次のコンパイルすることができますので、それは、あります知っていますか? FlutterでMediaPlayerにアクセスできますか?もしそうなら、私はpubspec.yamlでどのように参照しますか?
基本的には、応答として.mp3ファイルと.wavファイルを送信するサービスがあります。ファイルの名前はリクエストのURLにあります。私はそのサービスを消費し、その音楽をFlutterアプリで再生できるようにしたい。このようなイベントはどうなるべきですか? –
flutter_spritesライブラリを介してFlutter用のオーディオ再生コンポーネントがありました。 flutter_spritesとオーディオコンポーネントの両方がFlutterコードベースから削除されました。[https://github.com/flutter/flues/issues/1364](https://github.com/flutter/flutter/issues/1364)を参照してください。 。 Flutterチームに連絡して、サウンド/オーディオコンポーネントの状態を確認できます。または、[Flutter hello_serviceの例](https://github.com/flutter/flutter/tree/master/examples/hello_services)に基づいて、Android/JavaレイヤーとDartを統合した独自のサービスを作成してください。 –
Flutterチームにどのように連絡しますか? –