如果我要将某种媒体流式传输到MediaPlayer,有没有什么方法可以在播放之前/之后复制它?例如,如果我要播放YouTube剪辑,是否可以在播放时保存该剪辑?
编辑:
(Ocelot的回答让我意识到这个问题是如何本地化的).
我要做的是复制已在进行中的MediaPlayer流(无论是youtube还是音乐流).我希望能够在新流开始和结束时收到通知.到目前为止,我发现的唯一一件事(对于后者)甚至可以远程关闭广播字符串ACTION_AUDIO_BECOMING_NOISY,但这并不能满足我的需要.我有什么办法吗?
解决方法
我没有对此进行测试,看起来有点工作,但这是我会尝试的:
>创建Socket的子类.在此类中,您可以处理所有字节读取,并在本地保存流或使用它执行任何操作
>创建您自己的内容提供商,您可以使用它以您自己的格式将URI传递到您的媒体播放器.示例:mystream://youtube.com/watch?v = 3Rhy37u
>在内容提供程序中,覆盖openFile方法,然后在其中打开自己的套接字,并打开create a ParcelFileDescriptor with it.
现在,只需将新格式的url传递给您的媒体播放器,就应该让所有流都通过您的Socket,您可以在其中保存数据.