如何在android中获取当前播放歌曲的文件路径?

时间:2016-06-19 13:47:44

标签: android android-mediaplayer

我试图在Android中播放歌曲的文件路径。我尝试了很多解决方案,我也回答了这个问题here。 但过了一段时间我才明白,有时候赛道名称不是标准的,可能会有同名的赛道。所以我的方法在这里不起作用,因为它混淆了哪些歌曲要返回,并且它将为所有具有相同名称的歌曲返回相同的路径。 之后,我尝试通过组合多个意图值来查询歌曲,如下所示:

String selection = MediaStore.Audio.Media.TITLE + " == \"" + intent.getStringExtra("track") + "\""
" and "+MediaStore.Audio.Media.DURATION + " == \"" + intent.getLongExtra("duration") + "\"";

因为很少有可能存在具有相同名称和持续时间的歌曲。但是,还有一个问题是所有玩家都不会返回持续时间的歌曲。

我也搜索了分配以找到一个通用的解决方案,并从Android核心独立于哪个玩家正在播放歌曲的路径(我认为必须有一个处理所有这一切的地方,我可以得到我的想要那里,但我无法找到任何解决方案。我真的很困惑!

有没有一般的方法可以在不知道玩家的情况下从Android播放歌曲路径?任何人都可以帮助我?

1 个答案:

答案 0 :(得分:1)

  

在不知道播放器的情况下,是否有任何通用方法可以从Android播放歌曲路径?

没有

首先,不要求播放器播放本地存储在设备上的歌曲。例如,有许多流音频播放器。

其次,即使播放器正在播放恰好存储在本地的歌曲,也不要求播放器以任何方式告诉其他应用程序正在播放的歌曲。

第三,即使播放器正在播放恰好存储在本地的歌曲并且恰好泄漏有关播放内容的信息,也不要求该文件的路径位于应用可以发现的某个位置。您似乎假设所有歌曲都被MediaStore编入索引,但情况并非总是如此。

第四,即使播放器正在播放恰好存储在本地的歌曲,碰巧泄漏有关正在播放的内容的信息,恰好被MediaStore编入索引,不要求您的应用程序能够通过文件系统访问该文件。例如,该文件可能位于可移动存储上。