Я разрабатываю трансляцию в прямом эфире, и я дал элементы управления в значках Action Bar, например, значок воспроизведения и остановки через пункты меню. Все эти предметы прекрасно работают. что я хочу, так это то, что когда я запустил приложение, он покажет только элемент воспроизведения, и когда я нажму на значок воспроизведения, начнется воспроизведение потока, а значок остановки перестанет воспроизводиться ... и когда я нажму на значок остановки, тогда появится значок воспроизведения .like в медиаплеере, когда музыка воспроизводится, появляется кнопка паузы и при нажатии появляется кнопка воспроизведения кнопки паузы. я не мог получить какое-либо решение для этого, и я провожу весь мой день на это ... пожалуйста, помогите мне, чтобы получить решениеКак скрыть и отобразить значки пунктов меню при нажатии?
Это XML код
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/play"
android:icon="@drawable/ic_play"
app:showAsAction="ifRoom|withText"
android:title="Play" />
<item
android:id="@+id/pause"
android:icon="@drawable/ic_pause"
app:showAsAction="always"
android:title="Pause" />
</menu>
И это мой Основная деятельность Код
//STARTING GET MEDIA FUNCTION
private void getMedia() {
try {
mediaPlayer = new MediaPlayer();
url = new URL(address);
mediaPlayer.setDataSource(String.valueOf(url));
mediaPlayer.prepareAsync();
mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
return false;
}
});
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
bConnected = true;
if (bShouldPlay) {
mediaPlayer.start();
}
Toast.makeText(getBaseContext(), "Connected...", Toast.LENGTH_LONG).show();
}
});
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
//ONCREATE FUNCTION START
@Override
protected void onCreate(Bundle savedInstanceState) {
bConnected = false;
bShouldPlay = false;
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
private Document Getdata() {
try {
url = new URL(address);
connection= (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
inputStream = connection.getInputStream();
builderFactory= DocumentBuilderFactory.newInstance();
builder= builderFactory.newDocumentBuilder();
xmlDoc = builder.parse(inputStream);
return xmlDoc;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
onCreateOptionsMenu(menu);
inflator.inflate(R.menu.menu, menu);
return false;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
bConnected = false;
bShouldPlay = false;
switch (item.getItemId()) {
case R.id.actionPlay:
if (bConnected) {
mediaPlayer.start();
Toast.makeText(getBaseContext(), "Playing...", Toast.LENGTH_LONG).show();
} else {
bShouldPlay = true;
getMedia();
Toast.makeText(getBaseContext(), "Still connecting...", Toast.LENGTH_LONG).show();
}
Toast.makeText(getBaseContext(), "Connected...", Toast.LENGTH_LONG).show();
break;
case R.id.actionStop:
if (mediaPlayer.isPlaying()) {
Toast.makeText(this, "Stopping Media Player....", Toast.LENGTH_LONG).show();
mediaPlayer.stop();
mediaPlayer.release();
bConnected = false;
bShouldPlay = false;
Toast.makeText(this, "Media Player is Stopped....", Toast.LENGTH_LONG).show();
}
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
пожалуйста, помогите мне решить эту проблему ..
Получить кнопки с помощью findViewById (R.id.play) и findViewById (R.id.stop) и установить их видимость в GONE или VISIBLE. –