gpt4 book ai didi

java - Android:如何从 fragment 中的主动行为中获取媒体播放器对象?

转载 作者:太空宇宙 更新时间:2023-11-04 14:05:34 26 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序,并且正在使用 NavigationDrawer,只有一个 Activity (MainActivity) 和 Fragments。我在 ActionBar 上有一个 radio 直播按钮,所以我在 MainActivity 中为直播按钮创建了一个 MediaPlayer 对象,并且工作正常,现在我在其中一个 fragment 中有一些声音文件,我想获取我在 MainActivity 中创建的 mediaPlayer 对象以便使用它。请注意,实时流按钮始终在应用程序顶部可见,因此,如果我处于包含声音文件的 fragment 中,我希望能够收听该声音文件,如果我单击实时流按钮,则声音文件将暂停,实时流将开启。

这是我的代码:这是MainActivity(仅相关部分):

public class MainActivity extends ActionBarActivity {

private static final String RADIO_STREAM_URL= "http://198.178.123.23:8662/stream/1/;listen.mp3";
MediaPlayer mediaPlayer;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);
mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mediaPlayer.setDataSource(RADIO_STREAM_URL);
} catch (IOException e) {
e.printStackTrace();
}

return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {

if (item != null )
{
if(item.getItemId() == android.R.id.home){
if (mDrawerLayout.isDrawerOpen(Gravity.END)){
mDrawerLayout.closeDrawer(Gravity.END);
} else {
mDrawerLayout.openDrawer(Gravity.END);
}
}else if(item.getItemId() == R.id.action_settings){
try {
mediaPlayer.prepareAsync();
} catch (IllegalStateException e) {
e.printStackTrace();
}


mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
if(mediaPlayer.isPlaying()){
mediaPlayer.stop();
Log.e("ANA Radio","was playing");
}else{
Log.e("ANA Radio","was not playing");

mediaPlayer.start();
}
}
});
}

}
return false;
}

现在如何获取 Fragment 中的 mediaPlayer 对象?

最佳答案

这里试试这个:在您的 fragment 中,您可以编写以下代码来获取 MediaPlayer 对象:

((MainActivity)getActivity()).mediaPlayer

关于java - Android:如何从 fragment 中的主动行为中获取媒体播放器对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28901177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com