Java - Android Studio MP3 使用

标签 java android mp3

我正在 android 中开发一种方法来调用各种 mp3 文件名,而不是使用无数的 switch case。如果要制作 500 多个与不同名称(声音)关联的 mp3 文件,有什么更好的方法来解决这个问题而不是调用无数的 switch case?

我使用 2d string:string 数组来进行一对 1:1 字符串匹配。我尝试研究映射,但使用数组似乎可以为两个字符串创建唯一索引。

我想根据识别的字符串将其绑定(bind)到 mp3 音频中。

感谢阅读!

我尝试过的一些东西

mplayer = MediaPlayer.create(this, R.raw.array[][]);

事先我会有一个函数来识别它正在查看数组中的哪个字符串并调用具有相同名称的相应音频文件,但将来可能会出现重复字符串的问题

最佳答案

我很难理解您的问题,但我假设您有一个指向 MP3 文件的文件路径列表,并且对于这些文件路径中的每一个,您都有一个字符串标识符。

我还假设您使用的是 MediaPlayerMedia .

示例:

FILE_PATH                IDENTIFIER
"C:\path\to\file.mp3"    "Jinglebells"
"C:\path\to\file2.mp3"   "Winter Wonderland"

如果上述假设成立,那么您可以实现一个包含标识符和文件路径(作为 URI)的 HashMap。这允许根据易于内存的标识符快速查找文件路径,并消除对复杂的 if-else 或 switch 语句的需要。

public class ExampleClass {
    private final HashMap<String, URI> identifierAssociations = new HashMap<>();

    public MediaPlayer getPlayer(final String identifier) {
        final URI fileURI = identifierAssociations.get(identifier);
        final Media media = new Media(fileURI);
        return new MediaPlayer(media);
    }
}

这是一个开始,但您需要加载所有文件路径的列表和每个文件路径的标识符,以便首先填充 HashMap。

作为一个非常简单的解决方案,您可以简单地解析文件名(不带扩展名)并将其用作标识符字符串。

关于Java - Android Studio MP3 使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41308324/

相关文章:

Vim 修改文件(如果与 xxd 一起使用)

Java - 重载方法的奇怪任务

java - 如何实现List<T>到T[]转换的通用方法?

android - Phonegap 获取工作区的屏幕高度(屏幕减去状态栏)

java - 尝试向 recyclerview 添加元素(ConcurrentModificationException)

audio - 如何创建链接到Web资源的媒体文件,以便流式传输资源?

google-chrome - Chrome无法播放mp3文件?

java - java中导入和方法调用的词法分析

java - 使用装饰器模式装饰 JLabel

android - AppBarLayout 并不总是在向下滚动时重新进入