MediaPlayer不能使用文件名中的某些字符

托米斯科特

MediaPlayer适用于大多数文件,但文件名中包含某些字符时除外。

MediaException:MEDIA_UNAVAILABLE:T:\ Music \ Paradis-Hémisph?re.m4a(系统找不到指定的文件)

    public static void play(File song) {
    // Checks if file exists
    if (!song.exists()) {
        System.out.println("Song doesn't exist! " + song.getAbsolutePath());
        return;
    }

    Media media = new Media(song.toURI().toString());
    player = new MediaPlayer(media);

    player.play();

}

和调用该函数的代码:

FXMediaPlayer.play(new File("T:\\Music\\Paradis - Hémisphère.m4a"));

其中一些字符是:éêä

我应该如何正确解析文件名,或者MediaPlayer有问题?

托米斯科特

解决了!我必须将文件名编码为UTF-8。

还必须将'+'替换为'%20',更多信息:https : //stackoverflow.com/a/4737967/3791826

不支持UTF-8字符的文件名,因为它给了我URISyntaxException

String filePath = null;
    try {
        //Encoding filename to UTF-8, doesn't support folders with UTF-8 characters
        filePath = song.getParentFile().toURI().toString()
                + URLEncoder.encode(song.getName(), "UTF-8").replace("+", "%20");
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
Media media = new Media(filePath);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android MediaPlayer无法使用Uri.parse(path)播放文件名中包含“#”字符的文件

来自分类Dev

Android MediaPlayer无法使用Uri.parse(path)播放文件名中包含“#”字符的文件

来自分类Dev

Android MediaPlayer无法使用Uri.parse(“ ...#。mp3”)播放文件名中包含“#”字符的文件

来自分类Dev

替换文件名中某些部分的字符

来自分类Dev

如何从文件名中删除某些字符串?

来自分类Dev

从文件名中删除某些特殊字符

来自分类Dev

Makefile自动变量不能转义文件名中的字符

来自分类Dev

copy():文件名不能为空-对于某些文件

来自分类Dev

从文件名中删除某些字符串模式,而不影响扩展名

来自分类Dev

是否有可能使用文件名从库中获取照片?

来自分类Dev

如何在文件名中强制使用非法字符?

来自分类Dev

使用Powershell删除文件名中的方括号字符

来自分类Dev

在文件名中可以使用哪些字符?

来自分类Dev

使用PowerShell重命名或删除文件名中的字符

来自分类Dev

使用PowerShell在文件名中搜索字符串

来自分类Dev

使用 Ansible 从包含特定文件名的文件中复制某些文件

来自分类Dev

PowerShell-从多个文件名中删除某些字符串

来自分类Dev

使用Powershell脚本在文件夹中获取某些文件名

来自分类Dev

如何使用批处理脚本删除Windows 7中许多文件的文件名的某些部分?

来自分类Dev

如何删除文件名中没有给定字符串的某些扩展名文件?

来自分类Dev

为什么不能使用c#从csv文件中解码波斯字符?

来自分类Dev

Bash-如何归档和压缩子目录中的文件,但只能使用特定的文件名

来自分类Dev

创建批处理文件,以文件名中的某些字符串将文件添加到数组

来自分类Dev

从文件名中删除特殊字符

来自分类Dev

文件名Java中的特殊字符

来自分类Dev

从文件名中删除特殊字符

来自分类Dev

文件名中的批量替换字符

来自分类Dev

文件名中的php条字符

来自分类Dev

文件名中的奇怪字符

Related 相关文章

  1. 1

    Android MediaPlayer无法使用Uri.parse(path)播放文件名中包含“#”字符的文件

  2. 2

    Android MediaPlayer无法使用Uri.parse(path)播放文件名中包含“#”字符的文件

  3. 3

    Android MediaPlayer无法使用Uri.parse(“ ...#。mp3”)播放文件名中包含“#”字符的文件

  4. 4

    替换文件名中某些部分的字符

  5. 5

    如何从文件名中删除某些字符串?

  6. 6

    从文件名中删除某些特殊字符

  7. 7

    Makefile自动变量不能转义文件名中的字符

  8. 8

    copy():文件名不能为空-对于某些文件

  9. 9

    从文件名中删除某些字符串模式,而不影响扩展名

  10. 10

    是否有可能使用文件名从库中获取照片?

  11. 11

    如何在文件名中强制使用非法字符?

  12. 12

    使用Powershell删除文件名中的方括号字符

  13. 13

    在文件名中可以使用哪些字符?

  14. 14

    使用PowerShell重命名或删除文件名中的字符

  15. 15

    使用PowerShell在文件名中搜索字符串

  16. 16

    使用 Ansible 从包含特定文件名的文件中复制某些文件

  17. 17

    PowerShell-从多个文件名中删除某些字符串

  18. 18

    使用Powershell脚本在文件夹中获取某些文件名

  19. 19

    如何使用批处理脚本删除Windows 7中许多文件的文件名的某些部分?

  20. 20

    如何删除文件名中没有给定字符串的某些扩展名文件?

  21. 21

    为什么不能使用c#从csv文件中解码波斯字符?

  22. 22

    Bash-如何归档和压缩子目录中的文件,但只能使用特定的文件名

  23. 23

    创建批处理文件,以文件名中的某些字符串将文件添加到数组

  24. 24

    从文件名中删除特殊字符

  25. 25

    文件名Java中的特殊字符

  26. 26

    从文件名中删除特殊字符

  27. 27

    文件名中的批量替换字符

  28. 28

    文件名中的php条字符

  29. 29

    文件名中的奇怪字符

热门标签

归档