안드로이드를 통해 오디오 파일의 재생 시간(길이)을 얻는 방법
2969 단어 Android
느리지만 Media Player를 사용하십시오.
안드로이드에서 mp3 같은 재생 시간을 원할 때 어떻게 해야만 지능적으로 재생 시간(길이)을 얻을 수 있습니까?이런 의문은 종종 나오지만, 바퀴의 재발명적 방법은 어렵고, 느리지만, 미디어플레이어는 사용하자. 그렇다면.
앞마당
견본
public static int getDuration(File audioFile) {
MediaPlayer mp = new MediaPlayer();
FileInputStream fs;
FileDescriptor fd;
fs = new FileIputStream(audioFile);
fd = fs.getFD();
mp.setDataSource(fd);
mp.prepare();
int length = mp.getDuration()
mp.release();
return length;
}
이 코드는 MediaPlay #prepare () 이기 때문에 매우 느립니다.하지만 이건 정말 괜찮네요.FileDescriptor 정보
FileDescriptor는 자바에서 오래전부터 있었던 반이지만 알려지지 않은 반이다.이런 수준은 흔히 볼 수 있는 초보자를 위한 해설서에 절대 등장하지 않는다.그렇다면 왜 미디어플레이#setDataSource는 File을 매개 변수로 삼지 않습니까?왜 FileDescriptor입니까?이렇게 되면
MediaPlay#setDataSource(String path)도 있고 path 파일의 경로도 OK, http, rtsp 등 프로토콜의 URL도 OK입니다.안드로이드 같은 것은 네트워크에 연결된 장치로 로컬 파일과 네트워크의 모든 것을 똑같이 처리하는 사상의 실현을 반영한다.FileDescriptor 자체는 실행 환경을 처리하는 Input과 Output보다 더 추상적인 개념으로 로컬 파일이든 인터넷이든 모두 추상적으로 처리한다.따라서 MediaPlay#setDataSource(File file)만 있으면 됩니다.
삼행
후기
Reference
이 문제에 관하여(안드로이드를 통해 오디오 파일의 재생 시간(길이)을 얻는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/akiramuramatsu/items/c947afd54c59a3b94662텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)