AudioFocus에 대해서 문의줌 드리려고 합니다.

조회수 2480회

안녕하세요.

항상 고맙게 도움을 잘 받고 있습니다.

다름이 아니라 제가 VideoView를 이용하여 동영상을 재상을 하는데

문제는 음악을 듣고 있는 도중 (멜론이나, 또는 지니)같은 앱이 멈추거나 꺼져버립니다.

재 앱이 실행되어도 음악 듣는 앱들을 종료하고 싶지 않습니다.(참고로 저희 영상들은 음성이 없습니다.)

그래서 쫌 찾아보니 Audio Focus라는게 나오던데 해결방법이 있는지 궁금합니다.

  • 감사합니다.
  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • VideoView의 setVideoURI() 함수를 호출하면 내부적으로 openVideo()를 호출합니다.

    private void openVideo() {
        ...
    
        AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
        am.requestAudioFocus(null, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
    
        ...
    }
    

    openVideo() 내부에서 오디오 포커스를 요청하기 때문에 다른 뮤직앱의 음악 재생이 정지되는 것입니다. 테스트 해본 결과 VideoView로는 이 문제를 해결할 수 있는 방법을 찾지 못했습니다.

    관련된 자료를 검색 해보니 VideoView를 사용하지 않고, MediaPlayer와 SurfaceView를 직접 사용해 동영상을 재생하면 오디오 포커스 문제에서 자유로워질 수 있습니다. (VideoView도 내부적으로 MediaPlayer와 SurfaceView를 이용해서 동영상을 재생함)

    아래 코드를 참고하셔서 VideoView를 제거하고 위 방법으로 직접 동영상을 재생해보시기 바랍니다.

    같은 문제로 올라온 스택오버플로우 게시글

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)