tsukuru501
@tsukuru501 (つくる)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

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

1Answer

Your answer might help someone💌