私はアプリを構築しようとしていますが、1つのアクティビティはストリーミングオンラインラジオがある「ラジオ」です。私が再生をクリックすると、すべて正常に動作し、再生し、停止をクリックすると停止します。しかし問題は、私が「ラジオ」から「ホーム」または「連絡先」にアクティビティを変更して「ラジオ」に戻ったときにラジオが実行されていて、それを止めたい場合は機能しません。私が演奏すると音楽は重複し、同じラジオが2回開いている。アプリケーションがRadioがすでに実行されていることがわからないようです。私はサービスオブジェクト、または何が必要ですか?私がサービスを必要とする場合、誰かが私がそれをどこに実装すべきかを正確に説明することができますか?ここに私のJavaコードは次のとおりです。サービスが必要ですか?
public class radioActivity extends AppCompatActivity {
int length;
Button b1;
private Button Button1;
private Button Button2;
private String STREAM_URL = "http://192.99.35.93:6370/;stream.mp3";
private MediaPlayer mPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_radio);
Button button1 = (Button) findViewById(R.id.buttonpredica1);
Button button2 = (Button) findViewById(R.id.buttonpredica2);
mPlayer = new MediaPlayer();
mPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);
WifiManager.WifiLock wifiLock = ((WifiManager) getSystemService(Context.WIFI_SERVICE))
.createWifiLock(WifiManager.WIFI_MODE_FULL, "mylock");
wifiLock.acquire();
wifiLock.release();
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
mPlayer.reset();
mPlayer.setDataSource(STREAM_URL);
mPlayer.prepareAsync();
mPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mPlayer) {
mPlayer.start();
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mPlayer.stop();
}
});
を制御するのに役立ちますが使用されています1つを得る方法)。 –
私の場合、シングルトンの例がありますか? – SamH