【发布时间】:2017-08-12 00:35:43
【问题描述】:
我需要使用用户的播放列表和音乐应用中的歌曲浏览用户设备上的音频文件,然后将选定的音频文件传递给我们的播放器。
Android MediaStore 是否包含所有音频文件的主副本,以及我从其他应用程序设置的用户定义的播放列表?我正在寻找类似于 iOS 上的MediaLibrary 的 API。
MediaStore Reference Documentation 没有为我提供有关如何实际使用 API 的足够详细信息,而且文档的 Training、API Guides 或 Samples 部分似乎也没有涵盖它。 Random Music Player sample 似乎已过时,无法与 Android Studio 一起编译。
我假设我的浏览器代码需要存在于服务中。正确的?是否有可用的示例/文档?
Content Provider API 呢?这有时会出现在代码示例中,但不清楚它是否会允许访问用户的音频文件。
我尝试使用以下 Intent,但它们没有让我以我需要的方式访问音频文件。是否存在应该使用的现有 Intent?
使用Intent.ACTION_GET_CONTENT 会在设备上打开文件系统的文件浏览器,显示音频文件。关闭,但不是这里需要的。
private fun pickAudioFileWithACTION_GET_CONTENT() {
val intent = Intent( Intent.ACTION_GET_CONTENT )
intent.setType("audio/*")
val chooserIntent = Intent.createChooser( intent, "Select soundfile")
startActivityForResult( chooserIntent, SELECT_MUSIC )
}
使用MediaStore.INTENT_ACTION_MEDIA_SEARCH 允许选择具有选择器但也可以播放的应用程序。我无法控制会发生什么,所以我也不认为这是需要的。
private fun pickAudioFileWithMediaStoreINTENT_ACTION_MEDIA_SEARCH() {
val mediaSearchIntent = Intent( MediaStore.INTENT_ACTION_MEDIA_SEARCH )
val mediaSearchChooserIntent = Intent.createChooser( mediaSearchIntent, "Select soundfile")
startActivityForResult( mediaSearchChooserIntent, SELECT_MUSIC )
}
我们将不胜感激有关其工作方式的建议以及文档和/或示例的指针。
【问题讨论】:
标签: android mediastore