2011-07-18 4 views
11

두 미디어 파일을 하나에 결합/병합하는 방법을 알려줄 수 있습니까?두 mp3 파일을 하나로 합치는 방법 (결합/결합)

audioInputStream에 대한 주제를 찾았으나 이제는 Android 용으로 지원되지 않으며 java 용 코드도 지원되지 않습니다.

그리고 StackOverflow에서 나는이 링크를 여기에서 발견했다. 그러나 나는 해결책을 찾을 수 없다 - 단지 오디오를 스트리밍하는 이들 링크. 어느 누구도 저에게 말할 수 있습니까?

PS 왜 내가 현상금을 시작할 수 없습니다 :(

+1

p.s : 해당 질문은 아직 2 일되지 않았습니다. 더 많은 것을 여기에서 읽으십시오 : http://meta.stackexchange.com/questions/54994/what-would-prevent-me-from-adding-a-bounty-to-a-question/54996#54996 – Adinia

+1

안녕하세요, 저는 두 병합을 원합니다. 두 mp3 오디오 파일을 하나의 file.If로 합치는 방법을 알고 있습니다. 내게 도움이됩니다. 감사합니다. – sandeep

답변

4

.mp3 파일 이가지 경우 고려 :

  • 파일 같은 샘플링 주파수 및 채널 번호를

이 경우 두 번째 파일을 첫 번째 파일 끝에 추가 할 수 있으며 Android에서 제공되는 File 클래스를 사용하여 수행 할 수 있습니다.

  • 다른 샘플링 빈도 또는 채널 수를 가진 파일.

이 경우 두 파일의 샘플링 빈도와 채널 수가 동일하도록 클립 중 하나를 다시 인코딩해야합니다. 이렇게하려면 MP3를 디코딩하고 PCM 샘플을 얻어서 샘플링 주파수를 변경 한 다음 MP3로 다시 인코딩해야합니다. 내가 아는 바로는 안드로이드는 트랜스 코드 나 API를 다시 인코딩하지 않는다. 하나의 옵션은 재 인코딩을 위해 JNI를 통해 lame/FFMPEG와 같은 외부 라이브러리를 사용하는 것입니다.

+0

아니, 나 도움이되지 않습니다 :(나는 2 일을 기다리고 있다고 생각하고, 현상금을 시작하는 것보다 .. 아마 사람들이 도울 수 있습니다. – Peter

+0

@ 피터, 병합 할 미디어 파일 형식에 대해 설명 할 수 있습니까? –

+0

mp3. 하나의 파일을 다른 파일에 추가 할 필요가 없습니다. 두 개의 사운드가 필요합니다 (예 : firts 파일 : 1 분, 두 번째 35 초). : – Peter

10
import java.io.*; 
public class TwoFiles 
{ 
    public static void main(String args[]) throws IOException 
    { 
     FileInputStream fistream1 = new FileInputStream("C:\\Temp\\1.mp3"); // first source file 
     FileInputStream fistream2 = new FileInputStream("C:\\Temp\\2.mp3");//second source file 
     SequenceInputStream sistream = new SequenceInputStream(fistream1, fistream2); 
     FileOutputStream fostream = new FileOutputStream("C:\\Temp\\final.mp3");//destinationfile 

     int temp; 

     while((temp = sistream.read()) != -1) 
     { 
      // System.out.print((char) temp); // to print at DOS prompt 
      fostream.write(temp); // to write to file 
     } 
     fostream.close(); 
     sistream.close(); 
     fistream1.close(); 
     fistream2.close(); 
    } 
} 
+0

서로 오디오를 추가합니까, 아니면 오디오를 믹싱합니까? –

+0

@ArslanAhmad 오디오 추가 용입니다. SequenceInputStream은이 코드의 핵심 부분입니다. SequenceInputStream는 문서로 언급되고있는 2 개의 FileInputStream를 연결합니다. 이 코드는 혼합되지 않고 결합됩니다. –

+0

@shiva 나는 동일한 코드를 사용하고 있지만 나를 위해 일하지 않는다. 내 질문 링크는 나를 돕는다. http : // stackoverflow.com/questions/35340025/how-to-merge-two-more-mp3-audio-file-in-android –

관련 문제