音频服务不停止android

音频服务不停止android,android,audio,service,Android,Audio,Service,按下“开始”按钮时,音频服务可以正常启动,但按下“停止”按钮时,音频服务不会停止。下面是java活动。我按照一个在线示例创建了一个播放音频的服务 import android.app.Activity; import android.content.Intent; import android.media.MediaPlayer; import android.os.Bundle; import android.os.Handler; import android.util.Log; impor

按下“开始”按钮时,音频服务可以正常启动,但按下“停止”按钮时,音频服务不会停止。下面是java活动。我按照一个在线示例创建了一个播放音频的服务

import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;

public class Ship extends Activity implements View.OnClickListener {
private static final String TAG = "ShipService";
public static final Integer[] TIME_IN_MINUTES = { 30, 45, 60, 180, 360 };
public MediaPlayer mediaPlayer;
public Handler handler = new Handler();
public Button button2;
public Spinner spinner2;

// Initialize the activity
@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    // wl.acquire();
    setContentView(R.layout.ship);
    button2 = (Button) findViewById(R.id.btn2);
    button2.setOnClickListener(this);
    spinner2 = (Spinner) findViewById(R.id.spinner2);
    ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(this,
            android.R.layout.simple_spinner_item, TIME_IN_MINUTES);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner2.setAdapter(adapter);

}

// Handle button callback
@Override
public void onClick(View v) {
    switch (v.getId()) {
    case R.id.btn2:
        Log.d(TAG, "onClick: starting service");
        startService(new Intent(this, Shipservice.class));
        break;
    case R.id.stop:
        Log.d(TAG, "onClick: stopping srvice");
        stopService(new Intent(this, Shipservice.class));
        break;
    }
}
}
导入android.app.Activity;
导入android.content.Intent;
导入android.media.MediaPlayer;
导入android.os.Bundle;
导入android.os.Handler;
导入android.util.Log;
导入android.view.view;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.Spinner;
公共类Ship extends活动实现View.OnClickListener{
私有静态最终字符串TAG=“ShipService”;
公共静态最终整数[]时间(单位:分钟)={30,45,60,180,360};
公共媒体播放器;
public Handler=new Handler();
公共按钮2;
公共纺纱机纺纱机2;
//初始化活动
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//wl.acquire();
setContentView(R.layout.ship);
button2=(按钮)findViewById(R.id.btn2);
按钮2.setOnClickListener(此);
喷丝头2=(喷丝头)findViewById(R.id.spinner2);
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple\u微调器\u项目,时间(单位:分钟);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
喷丝头2.设置适配器(适配器);
}
//句柄按钮回调
@凌驾
公共void onClick(视图v){
开关(v.getId()){
案例R.id.btn2:
Log.d(标记“onClick:启动服务”);
startService(新意图(此为Shipservice.class));
打破
案例R.id.stop:
Log.d(标记“onClick:stoppingsrvice”);
stopService(新意图(这个,Shipservice.class));
打破
}
}
}
请查看此代码-

public class ServicesDemo extends Activity implements OnClickListener {
 private static final String TAG = "ServicesDemo";
 Button buttonStart, buttonStop,buttonNext;

 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  buttonStart = (Button) findViewById(R.id.buttonStart);
  buttonStop = (Button) findViewById(R.id.buttonStop);
  buttonNext = (Button) findViewById(R.id.buttonNext);

  buttonStart.setOnClickListener(this);
  buttonStop.setOnClickListener(this);
  buttonNext.setOnClickListener(this);
 }

 public void onClick(View src) {
  switch (src.getId()) {
  case R.id.buttonStart:
   Log.d(TAG, "onClick: starting srvice");
   startService(new Intent(this, MyService.class));
   break;
  case R.id.buttonStop:
   Log.d(TAG, "onClick: stopping srvice");
   stopService(new Intent(this, MyService.class));
   break;
  case R.id.buttonNext:
   Log.d(TAG, "onClick: next Page");
   Intent intent=new Intent(this,NextPage.class);
   startActivity(intent);
   break;
  }
 }
}

阅读更多信息:

您尚未在onCreate()方法中设置停止按钮的单击侦听器

创建停止按钮的对象

 stopBtn= (Button) findViewById(R.id.stop);
 stopBtn.setOnClickListener(this);
公共按钮2,停止按钮n

更新onCreate()方法,如下所示

 button2 = (Button) findViewById(R.id.btn2);
 button2.setOnClickListener(this);
//停止按钮

 stopBtn= (Button) findViewById(R.id.stop);
 stopBtn.setOnClickListener(this);

你的按钮被按下了吗?是的,我想这里一切都好。只需下载这个邮政编码,并享受-这是我张贴前复制的代码。这是我用作示例的文件。我没有声明我的停止按钮,谢谢!另外,如果您在我上面的代码中看到,我已经设置了微调器,以允许选择时间。如何将音频设置为播放那么长的时间?