| | |
| | | package com.anyun.exam.lib; |
| | | |
| | | import android.app.Service; |
| | | import android.content.Context; |
| | | import android.content.Intent; |
| | | import android.content.SharedPreferences; |
| | | import android.database.Cursor; |
| | | import android.media.AudioManager; |
| | | import android.media.MediaPlayer; |
| | | import android.media.Ringtone; |
| | | import android.media.RingtoneManager; |
| | | import android.net.Uri; |
| | | import android.os.IBinder; |
| | | import android.os.Process; |
| | | import android.os.RemoteCallbackList; |
| | |
| | | import androidx.annotation.Nullable; |
| | | |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.util.ArrayList; |
| | | import java.util.concurrent.atomic.AtomicBoolean; |
| | | |
| | | /** |
| | |
| | | new Thread(new StartNative()).start(); |
| | | |
| | | new Thread(new TestThread()).start(); |
| | | |
| | | PlayRing(this); |
| | | } |
| | | |
| | | public void PlayRing(Context context) { |
| | | RingtoneManager ringtoneManager= new RingtoneManager(context); // 铃声管理器 |
| | | |
| | | for (int i = 0; i < ringtoneManager.getCursor().getCount(); i++) { |
| | | Log.i(TAG, "铃声名称 " + ringtoneManager.getRingtone(i).getTitle(context)); |
| | | |
| | | if (ringtoneManager.getRingtone(i).getTitle(this).equals("Carina")) { |
| | | Log.d(TAG, "播放铃声"); |
| | | |
| | | final MediaPlayer mediaPlayer = new MediaPlayer(); |
| | | Uri src = ringtoneManager.getRingtoneUri(i); |
| | | |
| | | try { |
| | | mediaPlayer.setDataSource(context, src); |
| | | mediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM); |
| | | mediaPlayer.setLooping(false); |
| | | mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { |
| | | @Override |
| | | public void onCompletion(MediaPlayer mp) { |
| | | // 在播放完毕被回调 |
| | | Log.d(TAG, "播放完成"); |
| | | mediaPlayer.stop(); |
| | | mediaPlayer.release(); |
| | | } |
| | | }); |
| | | |
| | | mediaPlayer.prepareAsync(); |
| | | mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { |
| | | @Override |
| | | public void onPrepared(MediaPlayer mp) { |
| | | // 装载完毕回调 |
| | | Log.d(TAG, "装载完毕回调"); |
| | | mediaPlayer.start(); |
| | | } |
| | | }); |
| | | |
| | | } catch (Exception e) { |
| | | |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | class TestThread implements Runnable { |