텍스트 및 녹음 된 오디오가 포함 된 앱을 개발 중입니다 (페르시아어 - 페르시아어). 이 두 가지를 서로 동기화하는 API가 있습니까? 오디오가 재생 될 때 텍스트를 강조 표시 할 수있는 방법이 있습니까?Android 동기화 오디오 (텍스트 포함)
1
A
답변
0
특정 기능과 비슷하기 때문에 standart API는 없다고 생각합니다. 그것의 전체 구현을 제공하는 것은 매우 광범위 할 것이지만 나는 그것이 좋은 질문이라고 생각하기 때문에 연구 방향을 제시 할 수 있음에도 불구하고.
각 오디오 파일마다 srt과 같은 유형의 자막 파일을 만들어야합니다. 여기에는 필독 가능한 단어가 오디오의 발음 시간과 매핑됩니다. 그 후에 응용 프로그램에 parse that file을 입력하여 단어 기간을 Map
으로 만들어야합니다. 결과적으로 MediaPlayer
콜백을 사용하면 오디오 시간에 따라 텍스트를 강조 표시하는 데 문제가되지 않습니다. 이 솔루션을 사용하면 자막이있는 오디오 파일을 앱에 동적으로 추가 할 수 있습니다. 물론 이러한 자막을 응용 프로그램에 직접 하드 코딩하고 이러한 유연성이 필요하지 않은 경우 조금 복잡한 구문 분석 프로세스를 피할 수 있습니다.
0
나는 그 질문에 대답하기에는 너무 늦었다 고 생각한다. 또한 매우 어렵고 시간이 많이 걸리지 만, 오디오 1, 오디오 2, 오디오 3 등의 여러 오디오가 있다면 당신을 제안한다. Mediaplayer의 루프를 사용하면 [배열에있는 경우] 텍스트를 기록하여 텍스트를 강조 표시 할 수 있습니다. 예를 들어, 텍스트 1 [배열]이면 audio1을 재생합니다. 다음과 같이 listview에서 구현합니다.
mPlayer.start();
a++;
z=1;
mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
if (a!=b+1) {
if(mPlayer != null) {
if(mPlayer.isPlaying()) {
mPlayer.stop();
}
mPlayer.reset();
}
try {
mPlayer.setDataSource("/mnt/sdcard/audio/aya(" + a + ").mp3");
mPlayer.prepare();
quranlst.setFocusableInTouchMode(true);
quranlst.setSelection(z);
quranlst.requestFocus();
quranlst.getChildAt(z).setBackgroundColor(Color.WHITE);
} catch (Exception e) {
e.printStackTrace();
}
mPlayer.start();
a++;
z++;
여기서 z는 텍스트 위치입니다. 희망이 당신에게 아이디어를 제공합니다.
데이터가 너무 큽니다. 이것은 많은 시간이 걸릴 것입니다 –
@alirezaarvandi 그래서 [자막 자동 생성] (http://softwarerecs.stackexchange.com/questions/4319/how-to-create-automatic-subtitles)을 시도해보고 편집 할 수 있습니다. 그러나 약간 까다로울 수 있습니다. 불행히도이 기능을 거부하는 것 외에는 다른 옵션이 없습니다. 런타임에는 음성 인식도 옵션이 아닙니다. 짧은 시간 동안 만 실행되어야하며 뛰어난 기능을 발휘하지 못하기 때문입니다. 2016 년 생각하지 않음 – Beloo