【问题标题】:When resuming music player then music resumes but not the play and pause button states恢复音乐播放器时,音乐会恢复,但播放和暂停按钮状态不会恢复
【发布时间】:2016-07-30 06:38:29
【问题描述】:

以下是我使用的代码。通过此代码,所有活动都会播放背景音乐。但是当我使用主页按钮返回此活动时,音乐正常播放,但绘图不会恢复。这意味着如果播放音乐并且我通过主页按钮返回该活动,则显示播放按钮而不是暂停按钮,但 我希望如果在恢复时播放音乐,则按钮暂停,如果没有则显示播放按钮。

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

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() {

}

【问题讨论】:

    标签: android drawable audio-streaming onresume


    【解决方案1】:

    每当您回到您的音乐播放活动时,Oncreate() 不会被调用,因此您的可绘制资源会加载到 Onpause()Onstart(),每次都不会调用 Oncreate()

    【讨论】:

    • 问题是我在点击时播放音乐,所以我应该设置一些图像,比如在初始时播放,当活动恢复时也会显示但不想要这个?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 2021-10-01
    相关资源
    最近更新 更多