import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.os.Environment;
import android.app.Activity;
import android.content.Context;
import android.media.MediaPlayer;
import android.media.AudioManager;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.util.Log;
import android.util.AttributeSet;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
public class SoundRacerActivity extends Activity implements
View.OnTouchListener {
private Button acceleratorUp;
private Button acceleratorDown;
private Toast failToast;
private Handler mHandler = new Handler();;
private MediaPlayer exhaust_sound;
private Context context;
//private SeekBar seekVol;
AudioManager audioManager;
private boolean volumUpRunning = false;
private boolean cancelVolumUpThread = false;
String dirPath = "/SoundRacer";
String path = Environment.getDataDirectory().getAbsolutePath();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
acceleratorUp = (Button) findViewById(R.id.acceleratorUp);
acceleratorUp.setOnTouchListener(this);
acceleratorUp.setPressed(false);
acceleratorUp.setBackgroundResource(R.drawable.dd);
// acceleratorDown = (Button) findViewById(R.id.acceleratorDown);
// acceleratorDown.setVisibility(View.GONE);
// acceleratorDown.setOnClickListener(this);
//seekVol = (SeekBar) findViewById(R.id.bar);
//seekVol.setVisibility(View.GONE);
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == 1) {
// Set button to display current status
acceleratorUp.setPressed(false);
acceleratorUp.setBackgroundResource(R.drawable.dd);
} else {
// Connection failed
failToast.show();
}
}
};
this.getResources().openRawResource(R.raw.enzo_ferrari);
exhaust_sound = MediaPlayer.create(this, R.raw.enzo_ferrari);
exhaust_sound.setAudioStreamType(AudioManager.STREAM_MUSIC);
exhaust_sound.setLooping(true);
exhaust_sound.start();
/*
* File file = new File(path+dirPath);
*
* if (!file.exists()) { file.mkdirs(); }
*/
}
/*
* @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the
* menu; this adds items to the action bar if it is present.
* getMenuInflater().inflate(R.menu.sound_racer, menu); return true; }
*/
/* public void volumUp() {
audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int currVol = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
int maxVol = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
}
public void volumDown() {
audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int currVol = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
Log.d("VOL", "CURRENT VOL = " + currVol);
audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);
}*/
//int currVol = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
//int maxVol = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
//int volum;
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int currVol = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
int maxVol = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
//seekVol.setMax(maxVol);
if (event.getAction() == MotionEvent.ACTION_DOWN) {
acceleratorUp.setPressed(true);
acceleratorUp.setBackgroundResource(R.drawable.pp);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
/*seekVol.setProgress(volum);
seekVol.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
progress, AudioManager.FLAG_SHOW_UI);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
});*/
// volumUp();
return true;
} else if (event.getAction() == MotionEvent.ACTION_UP) {
acceleratorUp.setPressed(false);
acceleratorUp.setBackgroundResource(R.drawable.dd);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);
/*seekVol.setProgress(volum);
seekVol.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
progress, AudioManager.FLAG_SHOW_UI);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
});*/
// volumDown();
return true;
}
return false;
}
}
현재 버튼을 터치를 하면 sound 볼륨 증가를 하고 터치를 하지 않을 때는 감소 하는 것을 하려고 합니다.
seekBar를 이용하여 터치 시에 seekBar가 증가 하고 이런 것도 해 보았고, 오토 클릭을 하려고 하였지만 이해 부족으로
계속 오류가 생깁니다. 좋은 방법이 있으면 알려주시면 감사하겠습니다. ㅜㅜ
현재 소스 코드 입니다.