1
私はthisのチュートリアルに従っています。シークバーとスピナーが作成されていないことを除いて、すべてうまくいきます。 これは私が のjavaをしようとしていますものです:アンドロイドイコライザが動作しない
public class MainActivity extends AppCompatActivity {
private MediaPlayer mediaPlayer;
private Equalizer equalizer;
private LinearLayout linearLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setVolumeControlStream(AudioManager.STREAM_MUSIC);
mediaPlayer = MediaPlayer.create(this, R.raw.song);
mediaPlayer.start();
equalizer = new Equalizer(0, mediaPlayer.getAudioSessionId());
equalizer.setEnabled(true);
setUpEqualizer();
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
}
});
}
public void setUpEqualizer() {
linearLayout = (LinearLayout) findViewById(R.id.linearlayequ);
TextView equheading = new TextView(this);
equheading.setText("Equalizer");
equheading.setTextSize(20);
equheading.setGravity(Gravity.CENTER_HORIZONTAL);
linearLayout.addView(equheading);
short nofrequencyband = equalizer.getNumberOfBands();
final short lowerfrequencyband = equalizer.getBandLevelRange()[0];
final short upperfrequencyband = equalizer.getBandLevelRange()[1];
for (short i = 0; i < nofrequencyband; i++) {
final short eqbandindex = i;
TextView frheadertv = new TextView(this);
frheadertv.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
frheadertv.setGravity(Gravity.CENTER_HORIZONTAL);
frheadertv.setText((equalizer.getCenterFreq(eqbandindex)/1000) + "Hz");
linearLayout.addView(frheadertv);
LinearLayout seeklay = new LinearLayout(this);
seeklay.setOrientation(LinearLayout.HORIZONTAL);
TextView lowereqbandlvl = new TextView(this);
lowereqbandlvl.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
lowereqbandlvl.setText((lowerfrequencyband/100) + "dB");
TextView highreqbandlvl = new TextView(this);
highreqbandlvl.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
highreqbandlvl.setText((upperfrequencyband/100) + "dB");
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.weight = 1;
SeekBar seekBar = new SeekBar(this);
seekBar.setId(i);
seekBar.setLayoutParams(layoutParams);
seekBar.setMax(upperfrequencyband - lowerfrequencyband);
seekBar.setProgress(equalizer.getBandLevel(eqbandindex));
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
equalizer.setBandLevel(eqbandindex, (short) (i + lowerfrequencyband));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
seeklay.addView(lowereqbandlvl);
seeklay.addView(seekBar);
seeklay.addView(highreqbandlvl);
linearLayout.addView(seeklay);
equalizSound();
}
}
public void equalizSound() {
ArrayList<String> equalizername = new ArrayList<String>();
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item);
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner spinner = (Spinner)findViewById(R.id.spinner);
for (short i=0;i<equalizer.getNumberOfPresets();i++){
equalizername.add(equalizer.getPresetName(i));
}
spinner.setAdapter(spinnerAdapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
}
@Override
protected void onPause() {
super.onPause();
if (isFinishing() && mediaPlayer != null) {
equalizer.release();
mediaPlayer.release();
mediaPlayer = null;
}
}
}
は、イコライザーを使用するか、私は間違いを犯していますどこ何かアドバイスがhelpful.Theアプリになります必要なすべての権限が任意の例外をスローされていないとだけ歌がありありプレイしています。