J'espère être au bon endroit pour poster , je rencontre un problème sur une application mobile codé par une ancienne personne de l'entreprise qui est parti ... il a codé un player dans l'application que j'essaie de débugger mais je n'ai fais que très peu de java dans ma vie. Ce que j'essaie de mettre en place est un listener pour mettre la musique en pause sur un incoming call , j'ai donc en cherchant sur internet écrit ce code :
mHandler.post(new Runnable() {
@Override
public void run() {
PhoneStateListener phoneStateListener = new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
if (state == TelephonyManager.CALL_STATE_RINGING) {
if (isPlaying()) {
pause();
Log.d("calling", "ca sonne !");
}
} else if (state == TelephonyManager.CALL_STATE_IDLE) {
player.setPlayWhenReady(true);
} else if (state == TelephonyManager.CALL_STATE_OFFHOOK) {
if (isPlaying()) {
pause();
}
}
super.onCallStateChanged(state, incomingNumber);
}
};
TelephonyManager mgr = (TelephonyManager) mContext.getSystemService(mContext.TELEPHONY_SERVICE);
if (mgr != null)
{
mgr.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
}
}
});
player.setPlayWhenReady(true);
mState = PlaybackStateCompat.STATE_PLAYING;
if (mCallback != null) {
mCallback.onPlaybackStatusChanged(mState);
}
}
Problème , ce code ne fonctionne que en mode débugger et après pas mal de recherche , je suppose que le problème est dû au thread d'exécution du listener mais sans grande piste de résolution ... j'ai trouvé la solution du Handler.post ( le mHandler dans le code au dessus ) , sans succès .
merci merci :)
edit : voici le code complet de la méthode play où différents listener qui fonctionnent sont mis en place ainsi que les déclarations de la classe du Player.
Si quelqu'un a une piste éventuelle mais a besoin d'info , n'hésitez pas à me demander je partagerai ce qu'il faut.
private Handler mHandler;
private static final String TAG = HorsecomMusicPlayer.class.getSimpleName();
private final MusicService mService;
private int mState;
private Callback mCallback;
private PlaylistProvider mPlaylistProvider;
private SimpleExoPlayer player;
private Context mContext;
private MediaSource trackSource;
public static String WOWZA_BASE_URL = "http://wowza.horsecom.io/vods3/_definst_/";
public static String WOWZA_APPEND_URL = ":amazons3/";
public static String WOWZA_PROTOCOL_URL = "/playlist.m3u8";
private List<TrackHCMusic> mTracksPlayed = new ArrayList<>();
private HCPlaylist prevPlaylist = null;
private int prevValue;
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Moderateur forum || FAQ 3D || discord 3D francophone || OC Tweak script