【问题标题】:How can MP3 files without a file extension play in the Android files app and is there any way I can play such files in my MP3 player Android app?没有文件扩展名的 MP3 文件如何在 Android 文件应用程序中播放?有什么方法可以在我的 MP3 播放器 Android 应用程序中播放这些文件?
【发布时间】:2022-01-02 12:31:33
【问题描述】:

我正在创建一个 MP3 播放器应用程序。它大部分工作正常,但有一个极端情况。

如果用户有一个名为“Bieber.mp3”的文件,但在文件应用程序中将文件名更改为“Bieber”而没有文件扩展名(在 Android 上),他们仍然可以从文件应用取决于设备(像在棉花糖上运行的 Nexus 等旧设备会这样做,而像 Android 12 上的像素这样的新设备会说它是无效的文件类型)。

但是,当 MP3 文件通过电子邮件发送(或上传到云端某处,如驱动器或 Dropbox)时,该文件在尝试从那里传输时将具有未知的文件类型

我想知道,被重命名为排除 .mp3 扩展名的 MP3 文件如何仍然在 android 文件应用程序中播放?有什么方法可以检查没有 .mp3 扩展名的文件是否仍然是我的 mp3 播放器的 Java 音频/mp3 文件?

如果没有 mp3 扩展名的 mp3 文件可以在 android 文件应用程序中播放,那么在我正在制作的 MP3 播放器中肯定应该有一些方法可以播放/访问它们,对吧?

【问题讨论】:

  • 您是否正在查询MediaStore 以获取要播放的音频内容?如果是这样,重命名的媒体片段是否会出现在您的 MediaStore 查询中?
  • “我有什么方法可以检查没有 .mp3 扩展名的文件是否仍然是音频/mp3 文件”参见stackoverflow.com/questions/11360286/…

标签: java android file audio mp3


【解决方案1】:

好吧,Android 有这个名为 MediaPlayer 的库/类:

https://developer.android.com/guide/topics/media/mediaplayer

MediaPlayer 是您在播放音频时使用的,

MediaPlayer 接受输入(文件),只要它仍被编码为音频文件。

无论你对文件扩展名做什么,只要它仍然被编码为音频,

它将保留为音频文件。

原来如此~

【讨论】:

  • 谢谢,这很有帮助。我的后续问题是 - 我如何检查输入是否被编码为音频文件?在我的 Mp3 播放器应用程序中,我正在从下载文件夹中读取 MP3 文件。当然,可能有用户下载的 MP3 文件,还有 PDF 文件和照片等。我如何确保没有扩展名的文件实际上被编码为音频文件而不是其他类型的文件?我不想读取名为“Bieber”的文件,该文件实际上是 PDF 而不是 mp3,然后在运行应用程序时出错。
  • @Yourmomcodes 我所知道的是,1. MediaPlayer 无法识别什么是音乐,什么不是,它只播放它可以播放的内容 2. 您可以使用 if 语句并比较文件是否有“。 mp3" 扩展名,或者它只是空白(可以是可执行文件) 3. 很难知道哪个是编码的,哪个不是,因为音频文件的编码太多了。
  • @Yourmomcodes 如果您需要有关选项号的帮助。 2 以上...您可以简单地从用户提供的目录中获取文件名,然后执行以下操作:while(dir.contains("/")){dir=dir.substring(indexOf("/"), dir.length());},然后使用这样的 if 语句:if(dir.contains(".mp3")){/*play music*/}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 2014-11-11
  • 2011-11-13
相关资源
最近更新 更多