如何从服务器下载mp3的一部分?

问题描述

用例

我的用例大致等于将15秒的mp3文件添加到1分钟左右的视频中。所有转码合并部分都将由 FFmpeg-android 完成,因此现在不必担心。

流程如下

  • 用户可以选择mp3的任何15秒(ExoPlayer流)(考虑192Kbps / 44.1KHz的3分钟=最多7MB)
  • 然后下载仅15秒的内容并将其添加到视频的音频流中。 (使用FFmpeg)
  • 使用获得的输出

尝试过的解决方

因此,以上两种解决方案都没有取得成功,目前,我正在下载整个文件并在本地对其进行修整,这绝对是一个糟糕的UX。 我不知道Instagram的故事功能中的音乐是如何工作的,因为这与我想要实现的功能很接近。

解决方法

这不可能是您想要的方式。 mp3文件没有时间戳。如果您只是跳到mp3的中间(并寻找帧开始标记),然后开始解码,则您不知道该帧的时间是什么,因为帧的大小是可变的。唯一知道的方法是计算当前位置之前的帧数。这意味着您需要整个文件。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...