ここまでのコードは次のとおりです。通常の曲を表示するだけです。
package com.training.MediaPlay;
import java.io.IOException;
import com.training.MediaPlayer.R;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.AdapterView.OnItemSelectedListener;
public class MediaPlay extends Activity {
public int x;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Spinner spinner = (Spinner) findViewById(R.id.spinner);
Button PlayButton = (Button) findViewById(R.id.button1);
Button PauseButton = (Button) findViewById(R.id.button2);
// final String[]items = getResources().getStringArray(R.array.mnth_array);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.mnth_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v,
int pos, long id) {
if(pos == 0)
x = 1;
else if(pos == 1)
x = 2;
else if(pos == 2)
x = 3;
}
public void onNothingSelected(AdapterView<?> adapter) {
// Do Nothing
}
});
final MediaPlayer mp = MediaPlayer.create(this, R.raw.music);
PlayButton.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
switch (x) {
case 1:
try {
mp.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp.start();
break;
case 2:
break;
case 3:
break;
default:
}
}
});
PauseButton.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
switch (x) {
case 1:
mp.pause();
break;
case 2:
//audiotrack.pause();
break;
default:
}
}
});
}
}
各入力ストリームを再生時に高い声に変換するにはどうすればよいですか。それはサンプリングレートまたは振幅または何か他のものですか??
そして、次のコードをどのように処理できますか。どのように使用できますか?
File mediafile = new File(mediaFilePath);
short[] audio = new short[(int) (mediafile.length()/2)];
// read in file and fill up audio[]
AudioTrack audiotrack = new AudioTrack(
// stream type
AudioManager.STREAM_MUSIC,
// frequency
11025,
// channel config.. mono, stereo, etc
AudioFormat.CHANNEL_CONFIGURATION_MONO,
// audio encoding
AudioFormat.ENCODING_PCM_16BIT,
// length
audio.length,
// mode
AudioTrack.MODE_STREAM
);
抜け道を見つけるのを手伝ってください。