8

Android에서 동영상 URL (예 : http://www.test.com/video.mp4)에서 짧은 클립 (예 : 동영상에 임의의 5-10 초)을 녹화 할 수 있습니까?)?Android에서 동영상 URL에서 클립을 캡처하고 녹화하는 방법

예를 들어, 활동 (url)에서 비디오를 스트리밍하여 짧은 클립을 캡처/기록 할 수 있습니다. 아마도 사용자가 비디오에서 임의의 시작/종료 시간을 기록하도록 허용 할 수 있습니다. 그렇다면이 작업을 수행 할 수있는 API가 있습니까? 그렇지 않은 경우이 기능을 지원하는 Android 라이브러리가 있습니까?

이에 대한 샘플 코드 솔루션을 제공해주십시오.

+0

"비디오 URL의 짧은 클립을 기록 하시겠습니까?"는 의미는 무엇입니까? – CommonsWare

+0

죄송합니다. 원래 게시물을 명확히하기 위해 업데이트했습니다. – codeshark

+0

@ android-user, 문제가 해결되면 내 대답을 수락하도록 요청할 수 있습니까? –

답변

1

나는 android.media.projection 라이브러리를 찾고 있다고 생각합니다. MediaProjectionDemo

여기이 라이브러리에 안드로이드의 설명서를 원하는 경우가 여기에 link

당신이 비디오 녹화를 언급뿐만 아니라 수행 할 수있는 issue tracker됩니다 : 여기를 사용하는 방법에 대한 예제에 대한 링크입니다 동시에 audo.

4

당신은 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 
    } 
    } 
} 

서버가 다운로드를 지원하지 않으면 수행 할 수있는 작업이 없습니다.

+0

감사합니다 Kiril. 비디오에 초를 어떻게 지정할 수 있습니까? 예를 들어 동영상 중간에 단 5 초만 저장한다고 가정 해 보겠습니다. – codeshark

+0

@Kiril – codeshark

+0

고맙습니다.이 작업을 수행 할 수 있을지 확신하지 못합니다. 이러한 기능을 제공 할 수있는 특정 HTTP 헤더에 익숙하지 않습니다. 특정 범위의 데이터를 다운로드 할 수 있지만 각 비디오의 품질과 크기 간의 관계를 찾아야합니다. –

관련 문제