当前位置: 首页 > 知识库问答 >
问题:

当恢复音乐播放器时,音乐将恢复,但不是“播放”和“暂停”按钮状态

通远
2023-03-14

下面是我使用的代码。通过这个代码,所有活动都播放背景音乐。但是当我使用home按钮返回到这个活动时,音乐正常播放,但是抽屉将不会恢复。这意味着,如果播放了音乐,我通过home按钮返回活动,那么播放按钮将显示,而不是暂停按钮,但我希望,如果在resume上播放了音乐,那么按钮将是暂停,如果不是,则显示播放按钮。

你能告诉我在恢复活动时如何使用“播放”和“暂停”按钮吗?

public class RadioActivity extends ActionBarActivity implements RadioListener{

private final String[] RADIO_URL = {"url "};
private ActionMenuView amvMenu;

ImageButton mButtonControlStart;
TextView mTextViewControl;
RadioManager mRadioManager = RadioManager.with(this);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_radio);
    mButtonControlStart = (ImageButton) findViewById(R.id.buttonControlStart);



    mRadioManager.registerListener(this);
    mRadioManager.setLogging(true);

    initializeUI();
    mButtonControlStart.setBackgroundResource(R.drawable.play);
    Toolbar toolbarBottom = (Toolbar) findViewById(R.id.toolbar);
    toolbarBottom.setTitle("Radio");
    amvMenu = (ActionMenuView) toolbarBottom.findViewById(R.id.amvMenu);
    amvMenu.setOnMenuItemClickListener(new ActionMenuView.OnMenuItemClickListener() {
        //  toolbarBottom.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {

        public boolean onMenuItemClick(MenuItem item) {
            switch(item.getItemId()){
                case R.id.activity_aboutus:
                    // TODO
                    Intent intent=new Intent(RadioActivity.this,Contact_us.class);
                    startActivity(intent);
                    break;
                // TODO: Other cases
                case R.id.menu_refresh:
                    // TODO
                    Intent intent1=new Intent(RadioActivity.this,Web.class);
                    startActivity(intent1);
                    break;
                case R.id.menu_about:
                    Intent intent2=new Intent(RadioActivity.this,Song_rqst.class);
                    startActivity(intent2);
                    break;
                case R.id.menu_item_share:
                    Intent intent3=new Intent(RadioActivity.this,Ratee.class);
                    startActivity(intent3);
                    break;



            }
            return true;
        }
    });

  }

public void initializeUI() {
    mButtonControlStart = (ImageButton) findViewById(R.id.buttonControlStart);
    mTextViewControl = (TextView) findViewById(R.id.textviewControl);

    mButtonControlStart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!mRadioManager.isPlaying()) {
                mRadioManager.startRadio(RADIO_URL[0]);
                mButtonControlStart.setBackgroundResource(R.drawable.end);
            }
            else {
                mRadioManager.stopRadio();
                mButtonControlStart.setBackgroundResource(R.drawable.play);

            }
        }
    });

}

@Override
protected void onResume() {
    super.onResume();
    mRadioManager.connect();
}


@Override
protected void onDestroy() {
    super.onDestroy();
    mRadioManager.disconnect();
}

@Override
public void onRadioLoading() {
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            //TODO Do UI works here.
            mTextViewControl.setText("RADIO STATE : LOADING...");
        }
    });
}

@Override
public void onRadioConnected() {

}

@Override
public void onRadioStarted() {
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            //TODO Do UI works here.
            mTextViewControl.setText("RADIO STATE : PLAYING...");
        }
    });
}

@Override
public void onRadioStopped() {
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            //TODO Do UI works here
            mTextViewControl.setText("RADIO STATE : STOPPED.");
        }
    });
}

@Override
public void onMetaDataReceived(String s, String s1) {
    //TODO Check metadata values. Singer name, song name or whatever you have.
}

@Override
public void onError() {

}

共有1个答案

花俊雄
2023-03-14

每当您回到音乐播放活动时,oncreate()不会被调用,因此您的可提取资源加载在onpause()onstart()上,每次oncreate()都不会被调用。

 类似资料:
  • ap.pauseBackgroundAudio(CALLBACK) 暂停播放音乐。 代码示例 <script src="https://gw.alipayobjects.com/as/g/h5-lib/alipayjsapi/3.1.1/alipayjsapi.inc.min.js"></script> <style>.output{ display:block; max-width: 100%

  • 本文向大家介绍Android仿音乐播放器带进度的播放暂停按钮,包括了Android仿音乐播放器带进度的播放暂停按钮的使用技巧和注意事项,需要的朋友参考一下 因为项目需要,要做一个下载暂停开始的按钮,要求按钮上显示进度。网上找了找没有合适的,不太满意,于是自己动手写了一个。 效果如下: 主要步骤: 1、最外侧的圆环。 2、圆环内侧代表进度的圆弧。 3、暂停时在中心部位画出三角形。 4、播放时在中心部

  • 如何在外部媒体文件关闭后自动恢复音乐文件?

  • 当我尝试播放我的音乐时,Discord机器人不会播放音乐。它使用ytdl核心和ffmpeg。我的代码是: 每当我尝试播放歌曲时,都会发生以下错误: (节点:5180)未处理的PromisejectionWarning:错误:找不到FFmpeg/avconv!在功能上。getInfo(C:\Users\picar\Desktop\DiscordMusicBot\node\u modules\pris

  • ap.stopBackgroundAudio(CALLBACK) 停止播放音乐。 代码示例 <script src="https://gw.alipayobjects.com/as/g/h5-lib/alipayjsapi/3.1.1/alipayjsapi.inc.min.js"></script> <style>.output{ display:block; max-width: 100%;

  • 基于jPlyer开发的音乐播放插件. 支持如下功能: 1,进度条播放 。 2,上一首,下一首,随机播放 。 3,播放完每一首后,自动播放下一首,如果下一首是最后一首,则自动播放第一首。 4,支持鼠标滚动操作,能上下翻滚屏幕。 5,歌曲时间 倒计时 ,而不是从0开始计时。 效果演示地址: http://www.cssrain.cn/jPlayer/jPlayerV2.0/demo.html