如何创建android服务(均衡器)来寻找我拥有的条形码?

如何创建android服务(均衡器)来寻找我拥有的条形码?,android,service,android-seekbar,Android,Service,Android Seekbar,我需要转换下面的代码,这是一个均衡器,一个android服务,当我关闭它时,它的效果仍然存在,是如何做到这一点 这样做的原因是,当我回到均衡器和执行屏幕时,他没有错过我设置的ifeitos 我需要一些关于如何执行此操作的提示,我甚至无法在服务中按id声明findview:/ 多谢各位 公共类活动{ private ArrayList<SeekBar> eqSbs; private Spinner eqPresetSpn; private Spinner prSpn; private

我需要转换下面的代码,这是一个均衡器,一个android服务,当我关闭它时,它的效果仍然存在,是如何做到这一点

这样做的原因是,当我回到均衡器和执行屏幕时,他没有错过我设置的ifeitos

我需要一些关于如何执行此操作的提示,我甚至无法在服务中按id声明findview:/

多谢各位

公共类活动{

private ArrayList<SeekBar> eqSbs;
private Spinner eqPresetSpn;
private Spinner prSpn;
private Equalizer eq;
private PresetReverb pr;
private Visualizer vs;
private SharedPreferences pref;
public AndroidBuildingMusicPlayerActivity mp3;

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.equalizer2);

    eqSbs = new ArrayList<SeekBar>();
    eqPresetSpn = (Spinner)findViewById(R.id.eqPresetSpn2);
    prSpn = (Spinner)findViewById(R.id.reverbSpn2);

      setEqualizer();
      setReverb();
    //  setVisualizer();        
    pref = PreferenceManager.getDefaultSharedPreferences(this);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.menu_save1 :
        return save(1);
    case R.id.menu_save2 :
        return save(2);
    case R.id.menu_save3 :
        return save(3);
    case R.id.menu_load1 :
        return load(1);
    case R.id.menu_load2 :
        return load(2);
    case R.id.menu_load3 :
        return load(3);
    }
    return false;
}

private void setEqualizer() {       
    eq = new Equalizer(0, mp3.mp2.getAudioSessionId());
    eq.setEnabled(true);
    final short minEQLevel = eq.getBandLevelRange()[0];
    final short maxEQLevel = eq.getBandLevelRange()[1];

    TableLayout eqLayout = (TableLayout)findViewById(R.id.eq2);
    short bands = eq.getNumberOfBands();
    for (short i = 0; i < bands; i++) {
        final short band = i;
        TableRow row = new TableRow(this);

        TextView freq = new TextView(this);
        freq.setGravity(Gravity.CENTER);
        freq.setText((eq.getCenterFreq(band) / 1000) + "Hz");
        row.addView(freq);

        eqSbs.add(new SeekBar(this));
        eqSbs.get(i).setMax(maxEQLevel - minEQLevel);
        eqSbs.get(i).setProgress(eq.getBandLevel(band) - minEQLevel);
        eqSbs.get(i).setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                eq.setBandLevel(band, (short) (progress + minEQLevel));
            }
            public void onStartTrackingTouch(SeekBar seekBar) { }
            public void onStopTrackingTouch(SeekBar seekBar) { }
        });
        row.addView(eqSbs.get(i));

        eqLayout.addView(row);
    }

    ArrayList<String> presetList = new ArrayList<String>();
    for (short i = 0; i < eq.getNumberOfPresets(); i++) {
        presetList.add(eq.getPresetName(i));
    }
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, presetList);
    eqPresetSpn.setAdapter(adapter);
    eqPresetSpn.setOnItemSelectedListener(new OnItemSelectedListener(){
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            eq.usePreset((short)position);
            for (int i = 0; i < eq.getNumberOfBands(); i++) {
                eqSbs.get(i).setProgress(eq.getBandLevel((short)i) - minEQLevel);
            }
            Log.d("EQ", eq.getProperties().toString());
        }
        public void onNothingSelected(AdapterView<?> parent) { }
    });
}

private void setReverb() {
    pr = new PresetReverb(0, mp3.mp2.getAudioSessionId());
    pr.setEnabled(true);
    prSpn.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            switch (position) {
            case 0:
                pr.setPreset(PresetReverb.PRESET_NONE);
                break;
            case 1:
                pr.setPreset(PresetReverb.PRESET_SMALLROOM);
                break;
            case 2:
                pr.setPreset(PresetReverb.PRESET_MEDIUMROOM);
                break;
            case 3:
                pr.setPreset(PresetReverb.PRESET_LARGEROOM);
                break;
            case 4:
                pr.setPreset(PresetReverb.PRESET_MEDIUMHALL);
                break;
            case 5:
                pr.setPreset(PresetReverb.PRESET_LARGEHALL);
                break;
            case 6:
                pr.setPreset(PresetReverb.PRESET_PLATE);
                break;
            }
        }
        @Override
        public void onNothingSelected(AdapterView<?> arg0) { }
    });
}

private boolean save(int i) {
    SharedPreferences.Editor editor = pref.edit();
    editor.putString("eq" + i, eq.getProperties().toString());
    editor.putString("pr" + i, pr.getProperties().toString());
    return editor.commit();
}

private boolean load(int i) {
    eq.setProperties(new Equalizer.Settings(pref.getString("eq" + i, "Equalizer;curPreset=0;numBands=5;band1Level=300;band2Level=0;band3Level=0;band4Level=0;band5Level=300")));
    short bands = eq.getNumberOfBands();
    short minEQLevel = eq.getBandLevelRange()[0];
    // eqPresetSpn.setSelection(eq.getCurrentPreset());
    for (int j = 0; j < bands; j++) {
         eqSbs.get(j).setProgress(eq.getBandLevel((short)j) - minEQLevel);
    }
    pr.setProperties(new PresetReverb.Settings(pref.getString("pr" + i, "PresetReverb;preset=0")));
    switch (pr.getPreset()) {
    case PresetReverb.PRESET_NONE :
        prSpn.setSelection(0);
        break;
    case PresetReverb.PRESET_SMALLROOM :
        prSpn.setSelection(1);
        break;
    case PresetReverb.PRESET_MEDIUMROOM :
        prSpn.setSelection(2);
        break;
    case PresetReverb.PRESET_LARGEROOM :
        prSpn.setSelection(3);
        break;
    case PresetReverb.PRESET_MEDIUMHALL :
        prSpn.setSelection(4);
        break;
    case PresetReverb.PRESET_LARGEHALL :
        prSpn.setSelection(5);
        break;
    case PresetReverb.PRESET_PLATE :
        prSpn.setSelection(6);
        break;
    }
    return true;
}
private ArrayList eqSbs;
专用微调器设备;
私人纺纱机;
专用均衡器;
私人混响公关;
私有可视化工具vs;
私人共享参考优先;
公共建筑音乐播放器mp3;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.r2);
eqSbs=新的ArrayList();
eqPresetSpn=(微调器)findViewById(R.id.eqPresetSpn2);
prSpn=(微调器)findViewById(R.id.reversbspn2);
设置均衡器();
设置混响();
//setVisualizer();
pref=PreferenceManager.getDefaultSharedReferences(此);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
开关(item.getItemId()){
案例R.id.menu_save1:
返回保存(1);
案例R.id.menu_save2:
返回保存(2);
案例R.id.menu_save3:
返回保存(3);
案例R.id.menu\U load1:
返回载荷(1);
案例R.id.menu\U load2:
返回载荷(2);
案例R.id.menu\U load3:
返回载荷(3);
}
返回false;
}
私有无效设置均衡器(){
eq=新均衡器(0,mp3.mp2.getAudioSessionId());
eq.setEnabled(真);
最终短矿井水位=等式getBandLevelRange()[0];
最终短maxEQLevel=等式getBandLevelRange()[1];
TableLayout eqLayout=(TableLayout)findviewbyd(R.id.eq2);
短波段=等式getNumberOfBands();
用于(短i=0;i