不知道如何在服务 class 中从布局上的搜索栏中获取浮动。 Android 工作室

No idea how being on service class to get float from seekbar on layoutt. Android Studio

我的目标是通过背景音乐的搜索栏来管理音量。 我通过服务创建背景音乐。 我在服务 class:

中有媒体播放器
public class ModernService extends Service  {

private MediaPlayer modernsong;
private SeekBar volumeSeekBar;
AudioManager am;


@Nullable
@Override
public IBinder onBind(Intent intent) {
    return null;
}

public ModernService() {
    super();
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
     am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    modernsong =MediaPlayer.create(this,R.raw.modern);
    modernsong.setLooping(true);
    modernsong.start();
    return START_STICKY;
}

@Override
public void onDestroy() {
    super.onDestroy();

    modernsong.stop();
}

}

问题是如何从布局上的搜索栏中获取浮动。 提前致谢

  1. 首先初始化volumeSeekbar并设置最大值

    volumeSeekBar = findViewById(R.id.seekBarId); volumeSeekBar.setMax(100);

  2. 然后你需要在视图中添加OnSeekBarChangeListener

    volumeSeekBar.setOnSeekBarChangeListener(新的 OnSeekBarChangeListener() {

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
    
            }
    
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
    
            }
    
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser) {
              //any ui changes you wanted to do on user action on seekbar
            }
        });
    
  3. 现在您可以从搜索栏中获取值 volumeSeekBar.getProgress();
  4. 服务中 class onStartCommand 可以直接访问意图。 因此,通过 Intent 启动服务时,您可以传递 seekbar 值。

    Intent mIntent = new Intent(this, Service.class); Bundle extras = mIntent.getExtras(); extras.putString(key, seekbarValue);