【问题标题】:Android MediaPlayer read from an InputStreamAndroid MediaPlayer 从 InputStream 中读取
【发布时间】:2013-09-05 13:13:15
【问题描述】:

我需要为 Android 实现一个视频 DASH 客户端。

目前除了将InputStream 写入临时文件然后读取该文件外,我还没有找到任何解决方案。当然,这个解决方案根本没有效率。我想使用OutputStream 来使用它的FileDescriptor 作为数据源。但是我无法在不创建现有文件的情况下使用有效的FileDescriptor...

由于DASH协议,客户端负责获取所有(小)段,所以我真的需要想办法直接从内存中读取媒体。也许唯一的解决方案是使用 JNI,但我真的不知道如何。

要恢复,我愿意接受所有建议。唯一的限制是:

  • 起初我有一个InputStream
  • 这里可以是任何中间操作,但效率越高越好
  • 获取有效输入以提供MediaPlayer

这似乎很基本,但我找不到任何方法来实现它。谢谢。

【问题讨论】:

  • 您找到解决方案了吗?我有同样的问题,我尝试使用 PipedInputStream 和 PipedOutputStream 解决它,但它们没有 FileDescriptor 可以在 MediaPlayer.setDataSource 方法上获取和使用。我还尝试从 PipedInputStream 创建一个 URI,但还没有成功。
  • @Derzu 实际上我花了很多时间在这上面,最后我放弃了......但是如果你找到解决方案,请告诉我。
  • 我找到了解决方案,但我仍在开发中。是创建一个 HTTP 本地服务器,其中视频数据源来自输入流。所以 MediaPlayer 从一个 http uri 中读取。看这篇文章:stackoverflow.com/questions/9257364/…
  • Hey Derzu 你有什么成功我正在解决同样的问题我认为我们可以通过合作来解决它。

标签: android android-mediaplayer


【解决方案1】:

Derzu 是正确的,本地代理可以做到这一点。请参阅我的回答here。欢迎随时提出任何问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 2018-06-26
    • 1970-01-01
    • 2010-12-20
    • 2012-04-30
    • 2017-07-15
    相关资源
    最近更新 更多