我触发MediaPlayer在单击按钮时播放声音。有时候,播放器会播放整个声音,有时候不会。它总是在最后切断。我在这里阅读了一些关于人们遇到同样问题的主题,但没有任何建议奏效。例如,有人说添加一个mediaPlayer.onCompletionListener()可以解决这个问题,但它没有。Android MediaPlayer问题
这里是与MediaPlayer的代码:
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = getLayoutInflater();
View row = inflater.inflate(R.layout.vocab_row, parent, false);
ImageView playIcon = (ImageView) row
.findViewById(R.id.blueplay_icon);
TextView vocabWord = (TextView) row
.findViewById(R.id.vocab_text_word);
TextView vocabMeaning = (TextView) row
.findViewById(R.id.vocab_text_meaning);
vocabWord.setText(data.get(position).getKey());
vocabMeaning.setText(data.get(position).getDefinition());
final String fileName = "audio/" + data.get(position).getAudio();
// set the click listener for the play button
playIcon.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
final MediaPlayer player = new MediaPlayer();
AssetManager manager = SingleLesson.this.getAssets();
final AssetFileDescriptor descriptor;
try {
descriptor = manager.openFd(fileName);
long start = descriptor.getStartOffset();
long end = descriptor.getLength();
//reset player
if (player != null) {
player.reset();
}
player.setDataSource(descriptor.getFileDescriptor(),
start, end);
} catch (IOException e) {
Log.e("IO EXCEPTION: ", "while getting mp3 assets.");
e.printStackTrace();
}
// set volume
player.setVolume(100, 100);
try {
player.prepare();
} catch (IllegalStateException e) {
Log.e("ERROR: ", "media player, illegal state");
e.printStackTrace();
} catch (IOException e) {
Log.e("ERROR: ", "media player, IO exception");
e.printStackTrace();
}
player.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer inPlayer) {
player.start();
}
});
// called when the file is finished playing
player.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer player) {
player.stop();
player.release();
}
});
}
这个问题是发生在模拟器上,但不是我的HTC不可思议。它也不会发生在我女朋友的moto droid2上,但是这些声音在moto droid2上确实有“点击”的声音。
感谢您的回复,但没有解决任何问题。很明显,这确实发生在某些手机上 - 用户通过电子邮件发出投诉,但是我仍然无法在除了模拟器之外的任何内容中再现问题。 – user548956 2011-04-14 22:52:45
嗨bytebender你能解决我的问题http://stackoverflow.com/questions/14544848/some-time-music-does-not-stop-android – 2013-01-27 06:20:46