从媒体存储中获取数据的内部 URI 与外部 URI
希望有人可以向我澄清这一点......我正在开发一个简单的视频播放器应用程序,可以播放手机上存储的视频剪辑。
我见过的所有示例都使用 MediaStore.Video.Media.EXTERNAL_CONTENT_URI 内容 Uri 获取视频,类似的东西
cursor = resolver.query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, cols, whereClause, null, sortOrder);
,但是它不会将列表限制为仅存储在 SD 卡上的文件吗?
较新的 Android 手机具有大量内部存储器 - 例如,三星 Galaxy S 通常配备 16Gb 内部存储器和 2Gb SD 卡。
我应该使用外部内容 uri 和内部内容扫描媒体存储两次吗?
我再次看到了大约 10 个音频和视频播放器的示例,并且所有这些都仅使用外部播放器。
甚至 检查了库存音乐播放器的源代码,它也仅从外部卡中提取。
Hopefully someone can clarify this to me...I am working on a simple video player app that plays video clip stored on phone.
All examples I've seen fetch video using MediaStore.Video.Media.EXTERNAL_CONTENT_URI content Uri, something like that
cursor = resolver.query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, cols, whereClause, null, sortOrder);
But won't it limit the list to only files stored on SD card?
Newer android phones has significant amount of internal memory - for example, Samsung Galaxy S typically comes with 16Gb on internal memory and 2Gb sd card.
Should I scan mediastore twice with external content uri and internal one?
Again I saw like 10 examples for audio and video players and all of them use external only.
Even checked source code for the stock music player and it also pulls only from external card.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
进行了一些测试,看来答案取决于。在 Android 模拟器和 HTC mytouch 上,它仅获取外部 SD 卡上的项目,而在 Samsung Galaxy S 上,它实际上也从内部存储中获取。
这是我真正讨厌 Android 的部分——为什么这么简单的事情却如此不同
ran some tests and it seems the answer it depends. On android emulator and HTC mytouch it fetches only items on external SD card, while on Samsung Galaxy S it actually pulls from internal storage too.
This is the part I really hate about android - why such simple things are so different
尝试使用 MediaStore.Video.Media.INTERNAL_CONTENT_URI
Try using
MediaStore.Video.Media.INTERNAL_CONTENT_URI