Android 용 라디오 앱에서 작업 중입니다. 이상한 문제를 발견했습니다.Android : MediaPlayer가 에뮬레이터에서 작동하지만 기기에서 작동하지 않음
이mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setVolume(1, 1);
try {
mediaPlayer.setDataSource(url);
mediaPlayer.setOnPreparedListener(
mediaPlayer.prepareAsync(); // prepare async to not block main thread
프로그램이 잘 에뮬레이터 (2.2, 2.3)에서 작동하지만 내 두 장치에하려고 할 때 (모두 안드로이드 2.2) 오디오 없다 : 즉, 코드의 일부입니다. 나는 많은 해결 방법을 시도했지만 오디오가 에뮬레이터에서는 작동하지만 장치에서는 작동하지 않는다고 이상하게 보입니다.
PS : 내가 설정 한 인터넷 권한
편집 : 모든 listiners가 (OnBufferingUpdateListener, OnCompletionListener, OnErrorListener, OnInfoListener, OnPreparedListener) 나는 음악을 듣고 에뮬레이터에 있지만,이 로그 캣에 오류가 있습니다 : emulator log
이 오류가 로그 캣에서 (장치)로 보여 :
E/OMXPlayer( 953): Creating new NVOMXPlayer: 0x9c1a8
E/OMXPlayer( 953): onFirstRef ++
E/OMXPlayer( 953): onFirstRef --
E/OMXPlayer( 953): setdatasource ++
E/OMXPlayer( 953): 0x9c1a8 setDataSource url=http://XXXXXX:8000
E/OMXPlayer( 953): render thread(10972) started: 0x9c1a8
E/OMXPlayer( 953): STATE_PREPARING - signal wait 0x9c1a8
E/OMXPlayer( 953): prepareAsync: 0x9c1a8
E/OMXPlayer( 953): STATE_PREPARING - signal rx'd 0x9c1a8
E/OMXPlayer( 953): prepare 0x9c1a8
E/OMXPlayer( 953): 0x9c1a8 Creating player for: http://XXXXX:8000
D/ ( 961): NVRM_DAEMON(803): rt_exist=2, add client ref
D/ ( 953): NvMMSetUserAgentString:: Len: 49: String: User-Agent: (NvMM Client v0.1; Linux;Android 2.2)
D/ ( 953): connect cancelled
D/ ( 953): connect cancelled
D/ ( 953): connect cancelled
D/ ( 953): connect cancelled
D/ ( 953): connect cancelled
D/ ( 953): connect cancelled
D/ ( 953): connect cancelled
D/ ( 953): Event_BlockError from 13SuperParser : Error code - 4
D/ ( 953): Graph_EventHandler: ERROR for READER [0x80001005]
D/ ( 953): Graph_EventHandler: ERROR for READER [0x80001005]
E/MediaPlayer(10958): error (1, 0)
E/ (10958): Prepare failed.: status=0x1
E/ (10958): java.io.IOException: Prepare failed.: status=0x1
E/ (10958): at android.media.MediaPlayer.prepare(Native Method)
E/ (10958): at app.relax.com.StreamingMediaPlayer.listen(StreamingMediaPlayer.java:64)
E/ (10958): at app.relax.com.StreamingMediaPlayer.startListening(StreamingMediaPlayer.java:74)
E/ (10958): at app.relax.com.StreamingMediaPlayer.access$0(StreamingMediaPlayer.java:70)
E/ (10958): at app.relax.com.StreamingMediaPlayer$1.run(StreamingMediaPlayer.java:51)
E/ (10958): at java.lang.Thread.run(Thread.java:1096)
E/OMXPlayer( 953): prepare 0x9c1a8 exit with error
E/OMXPlayer( 953): Error in prepare
E/OMXPlayer( 953): Worker Thread Exit -
"isPlaying()"을 반환하는 값은 무엇입니까? 스트림이 재생 중이거나 재생되지 않았습니까? 당신이 volumn을 설정했는지 확인하십시오. 청취자를 등록하여 경고 또는 "setOnInfoListener()"오류가 있는지 확인할 수도 있습니다. 장치의 –
은 에뮬레이터에서 디코더 오류를 발생시킵니다. 나는 정말로 무슨 일이 벌어지고 있는지 이해하지 못한다 : | – Stefano
어떤 디코딩 오류입니까? –