5

次のコードを使用して、Androidでデフォルトのアラーム音を再生しようとしています-

private void startAlarm() {
        Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
        if (alert == null) {
            alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
            if (alert == null) {
                alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
            }
        }
        MediaPlayer mMediaPlayer = new MediaPlayer();
        try {
            mMediaPlayer.setDataSource(getActivity().getApplicationContext(), alert);
            AudioManager audioManager = (AudioManager) getActivity().getSystemService(Context.AUDIO_SERVICE);
            int volumen = audioManager.getStreamVolume(AudioManager.STREAM_ALARM);
            if (volumen != 0) {
                mMediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM);
                mMediaPlayer.setLooping(true);
                mMediaPlayer.prepare();
                mMediaPlayer.start();
            }
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (SecurityException e) {
            e.printStackTrace();
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

しかし、それは次の例外をスローしています-

08-01 10:59:10.478: E/MediaPlayer(4529): Unable to to create media player
08-01 10:59:16.158: W/System.err(4529): java.io.IOException: setDataSource failed.: status=0x80000000
08-01 10:59:16.166: W/System.err(4529):     at android.media.MediaPlayer.setDataSource(Native Method)
08-01 10:59:16.174: W/System.err(4529):     at android.media.MediaPlayer.setDataSource(MediaPlayer.java:745)
08-01 10:59:16.174: W/System.err(4529):     at android.media.MediaPlayer.setDataSource(MediaPlayer.java:675)

コードをデバッグしました。URIアラートの値は

content://settings/system/alarm_alert

メディアプレーヤーを作成できず、その例外をスローできない理由を理解できませんか?誰かが問題がどこにあるかを指摘できますか?

前もって感謝します

4

0 に答える 0