Android 使用InputStream将意图发送到媒体播放器应用程序

Android 使用InputStream将意图发送到媒体播放器应用程序,android,streaming,media,Android,Streaming,Media,经过大量的搜索,我没有找到任何答案如何解决标题中描述的问题 我想向系统发送意图,以便播放一些媒体。它可以在任何地方,在加密的zip中,在FTP服务器上,或通过SMB访问在我的PC上。我使用输入和输出流作为不同协议之间的管道,因此可以在它们之间无障碍地复制文件 我想要实现的是为系统中可用的任何流应用程序提供对该输入流的访问。例如,流媒体应用程序可以播放位于我的PC的SMB共享上的歌曲,或直接从加密的zip播放歌曲,而无需提取/下载歌曲,只需使用给定的输入流即可 到目前为止,我唯一发现的是来自HTT

经过大量的搜索,我没有找到任何答案如何解决标题中描述的问题

我想向系统发送意图,以便播放一些媒体。它可以在任何地方,在加密的zip中,在FTP服务器上,或通过SMB访问在我的PC上。我使用输入和输出流作为不同协议之间的管道,因此可以在它们之间无障碍地复制文件

我想要实现的是为系统中可用的任何流应用程序提供对该输入流的访问。例如,流媒体应用程序可以播放位于我的PC的SMB共享上的歌曲,或直接从加密的zip播放歌曲,而无需提取/下载歌曲,只需使用给定的输入流即可


到目前为止,我唯一发现的是来自HTTP URL的流,这与我的情况不同。有人知道可能的解决方案吗?

还没有尝试过,但我假设您必须提供外部应用程序打开的文件的Uri以及与此Uri匹配的提供商

如果你有smb://... Uri,则需要安装一个提供程序来处理此问题

或者它可以是一个自定义Uri,比如mycustomprovider://,剩余的Uri将是特定于应用程序的

编辑:大多数文件管理器所做的是使用本地HTTP连接。它们打开流并侦听特定的HTTP端口,以将流提供给它

EDIT2:以下是使用HTTP的解决方案:

虽然传递输入流会容易得多;)真的