Аудиоплеер не воспроизводится, когда я возвращаюсь к своему приложению после телефонного звонка
У меня есть приложение для обмена сообщениями, в котором, когда я нахожусь во время звонка и поступает обычный телефонный звонок, и я отказываюсь, мой исходящий аудиопоток для моего приложения работает, а входящий звук - нет. У меня есть audioplayer.startplayer, определенный в новом потоке, чтобы избежать сбоев из-за незаконных исключений, но я подозреваю, что это создает эту проблему. Вот мой код для этого:
final Caller otherCaller = Mylib.getInstance().getUIState().getOtherCaller();
if (otherCaller != null) {
if (otherCaller.getParticipant().videoPlayer != null) {
otherCaller.getParticipant().videoPlayer.startPlayer();
}
if (otherCaller.getParticipant().audioPlayer != null) {
if (state == Thread.State.NEW) {
otherCaller.getParticipant().audioPlayer.startPlayer();
}
}
}
Не уверен, что это правильный путь, но если я не использую строку " "state == Thread.State.NEW) "
происходит сбой за исключением:
FATAL EXCEPTION: main
Process: com.myapp.debug, PID: 3713
java.lang.IllegalThreadStateException
at java.lang.Thread.start(Thread.java:722)
at com.lib.media.audio.AudioPlayer.startPlayer(AudioPlayer.java:89)
at com.myapp.call.ui.MycallActivity.onHandleNormalIncomingCall(MycallActivity.java:1398)
at com.myapp.call.ui.MycallActivity.access$100(MycallActivity.java:82)
at com.myapp.call.ui.MycallActivity$3.onCallStateChanged(MycallActivity.java:181)
at android.telephony.PhoneStateListener$1.handleMessage(PhoneStateListener.java:325)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6776)
1 ответ
Я думаю, что вы, вероятно, запускаете один и тот же поток дважды. Вам нужно запустить текущий поток, а не запускать его снова. Также, если ваш случай - аудио случай, попробуйте использовать паузу и возобновление вместо запуска и остановки. Можете сделать трюк, попробуйте и дайте мне знать, как это работает