저는 지금 음원과 녹음 파일을 사용자 요청이 들어올 때 마다 자르고, 자른 파일들을 합치는 기능을 개발중입니다. 사용자 요청이 들어올 때마다 새로운 쓰레드에서 위 과정을 수행합니다. 하지만 FFmpeg이 한번에 하나의 명령어만 실행할 수 있어서 문제가 되고 있습니다.
제가 찾은 문제 이유는 다음과 같습니다. 명령어를 처리중인 쓰레드가 finish 콜백이 터질때 다음 명령을 위한 스트링 배열을 생성합니다. 그 동안, 다른 스레드에서 FFmpeg을 execute 시키는거 같습니다. 동기화 해주기 위해서 FFmpeg의 getInstance 메서드에 synchronized 처리를 하거나, execute 메서드에 synchronized 처리를 해보았지만 오류가 해결되지 않았습니다. FFmpeg의 execute 처리를 어떻게 해야할까요? 어떻게 접근해야 할까요?
관련 코드는 글자수 제한 때문에 댓글로 달겠습니다.
혹시 알고 계신 분이 계시다면 혜안을 부탁드립니다.
사용 오픈소스 라이브러리: https://github.com/WritingMinds/ffmpeg-android-java