【问题标题】:How to capture/record clip from Video URL in Android and save to phone如何从 Android 中的视频 URL 捕获/录制剪辑并保存到手机
【发布时间】:2014-12-08 21:01:36
【问题描述】:

在 Android 中,是否可以从视频 URL(例如:http://www.test.com/video.mp4)录制短片(例如:视频中的任意 5-10 秒)?

例如,我想在 Activity 中流式传输视频(来自 url),并允许从中捕获/录制短片。也许,允许用户从视频中记录任意的开始/结束时间。如果是这样,是否有 API 可以完成此操作?如果没有,是否有支持此功能的 Android 库?

请为此提供示例代码解决方案。

【问题讨论】:

  • “从视频 URL 录制短片...”是什么意思?
  • 对不起,我更新了原始帖子以澄清。
  • @android-user,如果它解决了你的问题,我可以请你接受我的回答吗?

标签: android android-file android-video-player android-videoview


【解决方案1】:

您可以看到this 链接。简而言之,您的服务器必须支持下载。如果是的话,你可以试试下面的代码:

private final int TIMEOUT_CONNECTION = 5000; //5sec
private final int TIMEOUT_SOCKET = 30000; //30sec
private final int BUFFER_SIZE = 1024 * 5; // 5MB

private final int TIMEOUT_CONNECTION = 5000; //5sec
private final int TIMEOUT_SOCKET = 30000; //30sec
private final int BUFFER_SIZE = 1024 * 5; // 5MB

try {
  URL url = new URL("http://....");

  //Open a connection to that URL.
  URLConnection ucon = url.openConnection();
  ucon.setReadTimeout(TIMEOUT_CONNECTION);
  ucon.setConnectTimeout(TIMEOUT_SOCKET);

  // Define InputStreams to read from the URLConnection.
  // uses 5KB download buffer
  InputStream is = ucon.getInputStream();
  BufferedInputStream in = new BufferedInputStream(is, BUFFER_SIZE);
  FileOutputStream out = new FileOutputStream(file);
  byte[] buff = new byte[BUFFER_SIZE];

  int len = 0;
  while ((len = in.read(buff)) != -1)
  {
      out.write(buff,0,len);
  }
} catch (IOException ioe) {
  // Handle the error
} finally {
  if(in != null) {
    try {
      in.close();
    } catch (Exception e) {
      // Nothing you can do
    }
  }
  if(out != null) {
    try {
      out.flush();
      out.close();
    } catch (Exception e) {
      // Nothing you can do
    }
  }
}

如果服务器不支持下载,你无能为力。

【讨论】:

  • 谢谢基里尔。如何指定视频的秒数?例如,假设我只想在视频中间保存 5 秒?
  • 我不确定你能做到这一点。我不熟悉可以为您提供这种功能的某个 HTTP 标头。您可以下载特定范围的数据,但您必须找到每个视频的质量和大小之间的关系。
  • 谢谢基里尔。我将尝试查看是否有 http 标头让我知道质量...然后根据质量我应该能够对字节进行一些数学运算以获得字节/秒范围...
  • 是的,希望能帮到你。
【解决方案2】:

我认为您正在寻找android.media.projection 库。这是一个如何使用它的示例链接:MediaProjectionDemo

如果你想要关于这个库的 android 文档,这里是 link

这是一个issue tracker,您可能还想关注它,同时提到录制视频和音频。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    相关资源
    最近更新 更多