0
ExoPlayer 2を介してインターネットからオーディオを再生するコードがあります。着信音が0にミュートされ、通話が終了したら元に戻す方法は? )サイレントアプリのミュート
class TeleListener extends PhoneStateListener {
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
// CALL_STATE_IDLE;
setVolumeOn();
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
// CALL_STATE_OFFHOOK; call ends
break;
case TelephonyManager.CALL_STATE_RINGING:
// CALL_STATE_RINGING
silent();
break;
default:
break;
}
}
}
()とsetVolumeOn(です:
public class Player extends AppCompatActivity {
private String stream;
private boolean isPlay;
private ImageButton btnPLayPause;
BandwidthMeter bandwidthMeter;
TrackSelector trackSelector;
SimpleExoPlayer player;
private SimpleExoPlayerView simpleExoPlayerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_player);
btnPLayPause = (ImageButton) findViewById(R.id.btnPLayPause);
stream = "http://site.ru/radio.mp3";
bandwidthMeter = new DefaultBandwidthMeter();
TrackSelection.Factory streamSelectionFactory = new AdaptiveVideoTrackSelection.Factory(bandwidthMeter);
trackSelector = new DefaultTrackSelector(streamSelectionFactory);
player = ExoPlayerFactory.newSimpleInstance(this, trackSelector, new DefaultLoadControl());
simpleExoPlayerView = new SimpleExoPlayerView(this);
simpleExoPlayerView = (SimpleExoPlayerView) findViewById(R.id.player_view);
simpleExoPlayerView.setUseController(true);
simpleExoPlayerView.requestFocus();
simpleExoPlayerView.setPlayer(player);
Uri streamUri = Uri.parse(stream);
DefaultBandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this, Util.getUserAgent(this, "yourApplicationName"), bandwidthMeter);
ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();
MediaSource mediaSource = new ExtractorMediaSource(streamUri, dataSourceFactory, extractorsFactory, null, null);
player.prepare(mediaSource);
player.setPlayWhenReady(true);
isPlay = true;
if (player.getPlayWhenReady() == true) {
btnPLayPause.setImageResource(R.drawable.icon_stop);
}
}
@Override
protected void onDestroy() {
NotificationManager notifManager= (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notifManager.cancelAll();
super.onDestroy();
player.release();
}
public void onPlayPause(View view) {
if (isPlay == true) {
if (player.getPlayWhenReady() == true) {
player.setPlayWhenReady(false);
isPlay = false;
btnPLayPause.setImageResource(R.drawable.icon_play);
}
} else if (isPlay == false) {
if (player.getPlayWhenReady() == false) {
player.setPlayWhenReady(true);
isPlay = true;
btnPLayPause.setImageResource(R.drawable.icon_stop);
}
}
}
}
あなたがPhoneStateListener、そのような何かを実装する必要が同様の例に