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

just_audio_windows无法加载文件名含Unicode字符的音频文件

问题:just_audio_windows无法加载含Unicode字符的音频文件

现象

加载文件名或路径包含Unicode字符(如дуу.mp3)的音频文件时,抛出错误:

[just_audio_windows] Item error: The system cannot find the path specified.

示例代码:

import 'package:just_audio/just_audio.dart';

void loadUnicodeAudio() {
  final audioPlayer = AudioPlayer();
  audioPlayer.setFilePath('D:/examplefolder/дуу.mp3');
}

void loadUnicodeAudio2() {
  final audioPlayer = AudioPlayer();
  audioPlayer.setFilePath('D:/дуу/song.mp3');
}

环境

  • just_audio: ^0.9.31
  • just_audio_windows: ^0.2.0
  • Flutter: 3.10.2
  • Windows 11

解决方案

1. 升级依赖包

just_audio_windows的旧版本(如0.2.0)存在Unicode路径处理缺陷,升级到最新稳定版可直接修复该问题。更新pubspec.yaml中的依赖:

dependencies:
  just_audio: ^latest_version
  just_audio_windows: ^latest_version

执行flutter pub get更新依赖后重试。

2. 使用Uri替代直接传文件路径

若暂时无法升级包,可通过Uri.file()将路径转换为标准Uri后,调用setUri()加载:

import 'package:just_audio/just_audio.dart';

void loadUnicodeAudio() {
  final audioPlayer = AudioPlayer();
  final uri = Uri.file('D:/examplefolder/дуу.mp3');
  audioPlayer.setUri(uri);
}

void loadUnicodeAudio2() {
  final audioPlayer = AudioPlayer();
  final uri = Uri.file('D:/дуу/song.mp3');
  audioPlayer.setUri(uri);
}

这种方式会自动处理Unicode字符编码,确保Windows系统能正确识别路径。

3. 验证路径正确性

确认文件实际存在于指定路径,且路径中的Unicode字符无输入错误(如全角/半角混淆、拼写错误)。可直接从Windows资源管理器复制路径,避免手动输入导致的编码问题。

内容的提问来源于stack exchange,提问作者Bilguun Ts

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 17:53:26