You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中AudioSource类型未找到编译报错求助

解决Flutter中audioplayers 5.x版本找不到AudioSource类的问题

问题原因

你使用的audioplayers: ^5.2.1属于5.x版本,该版本对API做了重大重构:原AudioSource类已被重命名为Source,代码中仍使用旧类名自然会出现类型找不到的错误。

解决步骤

  1. 修正类型定义
    将代码中的AudioSource替换为Source:
// 原代码
late AudioSource _audioSource;

// 修改后
late Source _audioSource;
  1. 确保依赖同步
    执行以下命令确保依赖包已正确拉取:
flutter pub get
  1. (可选)清理缓存重新编译
    如果修改后仍报错,执行清理命令后重新编译:
flutter clean
flutter run

修正后的完整代码

import 'package:flutter/material.dart';
import 'package:audioplayers/audioplayers.dart';

void main() {runApp(AudioPlayerApp());}

class AudioPlayerApp extends StatelessWidget {@overrideWidget build(BuildContext context) {return MaterialApp(home: AudioPlayerWidget(),);}}

class AudioPlayerWidget extends StatefulWidget {@override_AudioPlayerWidgetState createState() => _AudioPlayerWidgetState();}

class _AudioPlayerWidgetState extends State<AudioPlayerWidget> {late AudioPlayer _audioPlayer;late Source _audioSource;

@overridevoid initState() {super.initState();_audioPlayer = AudioPlayer();_audioSource = UrlSource('http://myradio.com/test');}

@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text('Audio Player'),),body: Center(child: IconButton(icon: Icon(Icons.play_circle_filled),onPressed: () async {await _audioPlayer.play(_audioSource);},),),);}

@overridevoid dispose() {_audioPlayer.dispose();super.dispose();}}

内容的提问来源于stack exchange,提问作者Nice Tv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 17:55:13