Github地址

https://github.com/NeverOvO/windows_soundplay

windows_soundplay

基于WIN32实现的WIndows本地声音播放组建

 win32: ^2.0.5

代码的简单解析记录

win打包后的基于项目总目录的默认资源路径

String _thisRoute = r'\data\flutter_assets\assets\';

这里是去获取本项目打包后 在系统中的首路径

Directory dir=new Directory.fromUri(Uri(path: ""));
    String tt = '';
    await dir.absolute.resolveSymbolicLinks().then((value){
      tt= value;
    });

进行播放,采用拼接成为绝对路径的方式避免WIN32 API无法读取文件

try{
      final result = PlaySound(TEXT(tt.toString() + _thisRoute + fileName), NULL, SND_FILENAME |  SND_ASYNC);
      if (result != TRUE) {
        print('Sound playback failed.');
        return 'Sound playback failed.';
      }else{
        return 'Sound playback success.';
      }
    }catch(e){
      return 'Sound playback failed.';
    }

这里2个参数可改 :SND_FILENAME | SND_ASYNC

SND_ASYNC : 非阻塞式播放音频
SND_FILENAME : 视为文件名播放