安卓开源活动,让用户选择/创建媒体?

3
在我的开源应用程序中,我希望让用户插入一张图片/视频/音频等。用户可以从SD卡中选择现有媒体文件或者使用设备的硬件(拍照、录视频、录音、在触摸屏上绘画)来创建新的媒体文件。
虽然有很多代码片段展示如何实现这些功能,但是除了重新发明轮子,是否存在一个处理选择媒体文件整个过程的库呢?我只需要调用这个库,它就会处理UI,并返回用户选择/创建的媒体文件路径给我。
下面是该组件的样式:

Android media chooser

我相信许多应用程序都会发现这个小部件非常有用(如CMS创作、所见即所得编辑器、共享应用程序、富聊天等)。作为LGPL(或公共领域)组件,我相信它将受到欢迎并吸引一群开发者。在我启动这个项目之前,是否已经有这样一个小工具呢?

我进行了搜索但未找到这样的jar包,但找到了所有所需的代码片段, 因此,我的建议是:Nicolas,你为什么不去收集从SD卡获取媒体文件或记录或捕获新文件所需的所有代码片段呢?这些代码片段在互联网上的不同博客中肯定是可以找到的。[也许你可以在StackOverflow答案中找到所有的代码!]然后,您只需要为每个不同的Java文件/方法制作不同的文件,并使用ExampleActivity测试它们。然后将所有的java文件导出为jar包,那么你就有了自己的可执行任务的jar包。 - MKJParekh
@FasteKerinns:如果我描述的设备已经存在,那么使用它会更明智,而不是收集随机片段并确保它们在所有最新的Android版本上运行(这比人们想象的要花费更多时间)。与其重新发明轮子,不如合作。我会感到惊讶如果这样的设备不存在。 - Nicolas Raoul
1
阅读你的问题后,我也在尝试搜索相同的内容,如果我找到了,我会给你发送链接。 - MKJParekh
3个回答

3

拍照,请使用此 Intent:

Intent intent = new Intent( android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
startActivityForResult(intent);

对于拍摄视频,使用以下Intent:

Intent intent = new Intent( android.provider.MediaStore.ACTION_VIDEO_CAPTURE );
startActivityForResult(intent);

对于录音, 使用此Intent:

Intent intent = new Intent( android.provider.MediaStore.Audio.Media.RECORD_SOUND_ACTION );
startActivityForResult( intent );

当然,您需要设计活动以选择他们想要执行的操作。有关检索活动返回文件路径的链接文档,请参见。

如果我在问题中描述的小工具已经存在,那么最好使用它,而不是收集随机片段并确保它们在所有最新的Android版本上运行良好(这比人们想象的要花费更多时间)。最好是合作而不是重新发明轮子 :-) 如果这样的小工具不存在,我会感到惊讶。 - Nicolas Raoul
“gadget”是什么意思?使用这些操作意图意味着您使用内置应用程序执行这些功能,从而避免重新发明轮子。 - Jason Robinson
我列出的所有3个操作意图都可以在Cupcake上运行,这意味着它们将适用于99.7%的设备。 - Jason Robinson
实际上,我认为这三个操作比随机片段要干净得多。如果我别无选择,必须创建自己的媒体选择/创建活动,我会使用它们。谢谢! - Nicolas Raoul

3
我写了一个名为aFileChooser的小型Android库项目,旨在简化选择过程中的部分。它包括一个内置文件浏览器,并在选择后返回一个File对象。您还可以检索图像或视频缩略图,并使用帮助方法获取URI和路径。
免责声明:我还没有机会在ICS上测试它,但它应该正常运行。
在捕获方面找到一个全能解决方案可能不那么容易,因为这是碎片化的真正领域之一。

非常好!你说得对,这是一个碎片化使事情变得困难的领域。特别是在测试方面。确保这些片段拼凑起来在许多设备上可靠需要很长时间(可能每个月约5天)。这正是我认为合作比独自完成更好的原因。 - Nicolas Raoul
1
颁发悬赏是因为如果我不得不创建自己的媒体选择/创建活动,我将使用您的库。但仍然希望有人能找到我正在寻找的东西... - Nicolas Raoul
阅读您的库使我明白我真正需要的是调用Intent.ACTION_GET_CONTENT。这将允许用户从图库中选择图像,录制声音等,具体取决于安装了哪些应用程序。 - Nicolas Raoul

2

其PICK_FILE意图确实可以用于仅想从SD卡中选择文件的情况,但我的问题是关于一个活动,如果用户希望拍摄照片/视频/音频,而不是选择现有文件,也能够允许他们这样做。 - Nicolas Raoul
@NicolasRaoul,你确实说了“OR”(并且还加粗了)。 - Paul Burke
我指的是用户可以选择现有文件或创建新文件。用户可以自行选择。如果不清楚,我会更明确地表达。 - Nicolas Raoul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接