안드로이드를 통해 오디오 파일의 재생 시간(길이)을 얻는 방법

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)만 있으면 됩니다.

    삼행

  • android - Determining the duration and format of an audio file - Stack Overflow - http://goo.gl/sDjn7X
  • FileDescriptor에 대한 상세한 설명의 URL이 사라짐
  • 후기

  • 글로벌 해커가 없어도 돼요
  • 좋은 웹페이지 즐겨찾기