Flutter开发Windows桌面应用时如何实现音频文件播放?
Flutter Windows桌面端音频播放可行方案及示例
方案1:使用audioplayers包(官方维护,跨平台支持最好)
该包目前已经原生支持Windows平台,是新手场景最推荐的方案,无需手写原生代码即可实现常见音频控制功能。
使用步骤如下:
- 在项目的
pubspec.yaml中添加依赖(可替换为pub平台的最新稳定版本)
dependencies: audioplayers: ^4.0.1
- 业务代码调用示例:
import 'package:audioplayers/audioplayers.dart'; // 全局初始化播放器实例 final AudioPlayer audioPlayer = AudioPlayer(); // 播放assets目录下音频示例(需提前在pubspec.yaml声明assets音频目录) Future<void> playAssetAudio() async { await audioPlayer.setSource(AssetSource('audio/demo.mp3')); await audioPlayer.resume(); } // 播放本地磁盘任意音频文件示例 Future<void> playLocalFileAudio(String filePath) async { await audioPlayer.setSource(DeviceFileSource(filePath)); await audioPlayer.resume(); } // 播放网络音频示例 Future<void> playNetworkAudio(String audioUrl) async { await audioPlayer.setSourceUrl(audioUrl); await audioPlayer.resume(); } // 暂停播放 Future<void> pauseAudio() async { await audioPlayer.pause(); } // 页面销毁时释放资源 Future<void> disposePlayer() async { await audioPlayer.dispose(); }
方案2:使用just_audio + just_audio_windows组合
该方案适合需要复杂音频控制的场景,支持播放队列、变速变调、进度监听、均衡器等高级功能,Windows端实现由社区维护,稳定性达标。
使用步骤如下:
- 在项目的
pubspec.yaml中添加依赖(可替换为pub平台的最新稳定版本)
dependencies: just_audio: ^0.9.34 just_audio_windows: ^0.2.0
- 业务代码调用示例:
import 'package:just_audio/just_audio.dart'; final AudioPlayer player = AudioPlayer(); // 加载并播放音频 Future<void> playAudio() async { // 支持加载本地文件、assets文件、网络链接三种源 await player.setFilePath('C:/Users/Admin/Music/test.mp3'); player.play(); } // 高级控制示例 void advancedControl() { player.pause(); player.seek(const Duration(seconds: 15)); // 跳转到第15秒位置 player.setSpeed(1.2); // 设置1.2倍速播放 player.setVolume(0.7); // 设置音量为70% player.setLoopMode(LoopMode.one); // 单曲循环 }
通用注意事项
- 上述两个方案都不需要额外修改Windows端原生配置,添加依赖后直接编译即可运行
- 若需要读取用户磁盘任意路径的音频文件,可配合
file_picker包让用户手动选择文件获取路径后直接传入播放器即可,无需额外申请权限 - 两个方案均支持mp3、wav、m4a、flac等常见音频格式,完全覆盖已停更的
flutter_audio_desktop的所有功能
内容的提问来源于stack exchange,提问作者Sadikul Haque Sadi
相关产品推荐
相关产品推荐

