不知道如何在服务类上从layoutt上的seekbar中获取浮动。 Android Studio

问题描述 投票:0回答:1

我的目标是通过背景音乐的搜索栏管理音量。我通过服务创建了背景音乐。我在“服务”类别中有媒体播放器:

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();
}

}

问题是如何从布局中的搜索栏获得浮动。在此先感谢

android android-studio android-service android-seekbar
1个回答
0
投票
  1. 首先初始化volumeSeekbar并设置最大值。

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

  2. 然后您需要在[veiw]上添加OnSeekBarChangeListener。>>

    volumeSeekBar.setOnSeekBarChangeListener(new 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. 在服务等级onStartCommand中,可以直接访问意图。因此,通过意图启动服务时,您可以传递seekbar值。

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

© www.soinside.com 2019 - 2024. All rights reserved.