여기에서 가져온 FFmpegMediaPlayer 로 클라우드에 있는 acc 를 재생하기 위해이 코드를 사용하고 있습니다.
https://github.com/wseemann/FFmpegMediaPlayer
암호:
FFmpegMediaPlayer player = new FFmpegMediaPlayer();
try {
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.setDataSource(url);
player.prepareAsync();
} catch ( IOException | ExecutionException | InterruptedException e ){
e.printStackTrace();
}
URL 형식이 " http://something.com/audio.aac " 와 같은 경우 해당 코드는 정상적으로 작동합니다.
그러나 URL이 " https://something.com/audio.aac?something_else_here " 와 같으면 해당 코드가 작동하지 않고 오류 (0,0)이 발생 합니다.
FFmpegMediaPlayer 전에는 정확히 동일한 방법으로 MediaPlayer 를 사용했습니다 . 때로는 같은 문제가 없었기 때문에 더 빠르더라도 FFmpegMediaPlayer 로 전환하려고 생각 했지만이 오류를 처리하지 않습니다.
이제 누구든지 이것을 다루는 방법이 있습니까?
이 오류가 발생하는 데는 여러 가지 이유가있을 수 있지만 제 경우에 무엇을했는지 보여 드리겠습니다. 문제는 링크의 끝 문자열에 있다고 생각했지만 괜찮은 것 같습니다.
내 프로젝트에서 gradle을 통해 FFmpegMediaPlayer를 설치 했습니다 .
dependencies {
compile 'com.github.wseemann:FFmpegMediaPlayer:1.0.4'
}
하지만 내가 전화를했을 때
player.setDataSource(url);
player.prepareAsync();
https
링크에 문제가있었습니다 .
그래서 제가 한 일은 .NET Framework를 지원하는 AAR 패키지를 수동으로 가져 오는 것이 었습니다 HTTPS
. 나는 그것을 다운로드했다 :
https://github.com/wseemann/FFmpegMediaPlayer/releases/download/v1.0.3/prebuilt-aars-with-https.zip
다른 아키텍처 용으로 컴파일 된 여러 AAR 파일이 있지만 모든 아키텍처를 포함하는 AAR 파일도 있습니다.
그래서 이것이 제 문제의 해결책이었습니다.
단점은이 AAR을 애플리케이션 크기로 가져 오면 모든 아키텍처에 대해 컴파일 된 파일을 포함하도록 선택하는 경우 적어도 4MB 또는 심지어 20MB까지 증가한다는 것입니다.
결국 나는 다른 접근 방식 을 택 했지만, 확실히 안드로이드 는 개발자들에게 많은 고통을주기 때문에 MediaPlayer에 주의를 기울여야합니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다