bool MediaPlayerBridgeCapiTV::SelectAudioTrack(int audio_track_id) {
constexpr int kAdapationSetNotCare{-1};
- int active_audio_track = 0;
+ int current_active_audio_track_id = 0;
int active_alternative_set = 0;
auto ret = player_get_current_track_ex(player_, PLAYER_STREAM_TYPE_AUDIO,
- &active_audio_track, &active_alternative_set);
+ ¤t_active_audio_track_id, &active_alternative_set);
if (ret != PLAYER_ERROR_NONE) {
LOG(ERROR) << "player_get_current_track_ex fail, ret val = " << ret;
return false;
}
- if (active_audio_track == audio_track_id) {
+ if (current_active_audio_track_id != active_audio_track_id_) {
+ LOG(WARNING) << "Current audio track is different from the stored one";
+ active_audio_track_id_ = current_active_audio_track_id;
+ }
+
+ if (current_active_audio_track_id == audio_track_id) {
return true;
}
LOG(INFO) << "Updating active_audio_track_id_=" << active_audio_track_id_
- << " to new value active_audio_track=" << active_audio_track;
+ << " to audio_track_id=" << audio_track_id;
ret = player_select_track_ex(player_, PLAYER_STREAM_TYPE_AUDIO,
- active_audio_track_id_, kAdapationSetNotCare);
+ audio_track_id, kAdapationSetNotCare);
if (ret != PLAYER_ERROR_NONE) {
LOG(ERROR) << "player_select_track_ex fail, ret val = " << ret;
return false;
}
- active_audio_track_id_ = active_audio_track;
+ active_audio_track_id_ = audio_track_id;
return true;
}