The argument type 'String' can't be assigned to the parameter type 'Source'.
解決したいこと
The argument type 'String' can't be assigned to the parameter type 'Source'.
例)
flutterで音声を再生させたいのですが、audioplayersのパッケージを使って開発を進めていたところこのエラーに躓いてしまいました。
あるyoutubeのコードをまるまるコピーして、そこから自分の作りたいアプリの方向にUIを調節しようとしているところのエラーでした。
解決方法を教えて頂けるとありがたいです。よろしくお願いします。
発生している問題・エラー
The argument type 'String' can't be assigned to the parameter type 'Source'.
該当するソースコード ここのpathの部分にエラーの赤線が表示される
Widget btnStart() {
return IconButton(
padding: const EdgeInsets.only(bottom: 10),
icon: Icon(_icons[0]),
onPressed: () {
this.widget.advancedPlayer.play(path);
},
);
}
全体)
import 'package:audioplayers/audioplayers.dart';
import 'package:flutter/material.dart';
class AudioFile extends StatefulWidget {
final AudioPlayer advancedPlayer;
const AudioFile({Key? key, required this.advancedPlayer}) : super(key: key);
@override
_AudioFileState createState() => _AudioFileState();
}
class _AudioFileState extends State<AudioFile> {
Duration _duration = new Duration();
Duration _position = new Duration();
final String path = "https://drive.google.com/uc?export=view&id=19pPm6Hhu1kdl9el5n1moFrR9HNLIhySS";
bool isPlaying=false;
bool isPaused=false;
bool isLoop=false;
List<IconData> _icons = [
Icons.play_circle_fill,
Icons.pause_circle_filled,
];
@override
void initState(){
super.initState();
this.widget.advancedPlayer.onDurationChanged.listen((d) {setState(() {
_duration=d;
});});
this.widget.advancedPlayer.onPositionChanged.listen((p) {setState(() {
_duration=p;
});});
this.widget.advancedPlayer.setSourceUrl(path);
}
Widget btnStart() {
return IconButton(
padding: const EdgeInsets.only(bottom: 10),
icon: Icon(_icons[0]),
onPressed: () {
this.widget.advancedPlayer.play(path);
},
);
}
Widget loadAsset() {
return
Container(
child:Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
btnStart(),
],)
);
}
@override
Widget build(BuildContext context) {
return Container(
child: Column(
children: [
Padding(
padding: const EdgeInsets.only(left: 20,right: 20),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
],
),
),
loadAsset(),
],
),
);
}
}
今回このaudioplayerを実装する上で参考にしている動画
0