如何停止播放 mp3 文件
我已经构建了一个使用 mp3 文件的应用程序。在第一个版本中,这些文件包含在 apk 文件中。我现在正在开发一个在 URL 资源中包含 mp3 文件的版本。 我已经调整了代码,几乎一切正常。 问题是停止、暂停和播放按钮现在不起作用。 这是启动流式传输的代码(工作正常):
private void playAudio(String media) {
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mediaPlayer.setDataSource(media);
mediaPlayer.prepare(); // might take long! (for buffering, etc)
mediaPlayer.start();
} catch (Exception e) {
Log.e(TAG, "error: " + e.getMessage(), e);
}
mediaPlayer.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer arg0) {
finish();
}
});
}
这是我用于停止等的功能。与本地文件(原始资源)一起工作正常但现在它不起作用:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
Intent intent = new Intent(SpelaSaga.this, VisaIngressSaga.class);
Bundle bundle = new Bundle();
bundle.putString("Titel", titel);
bundle.putInt("Position", position);
intent.putExtras(bundle);
SpelaSaga.this.startActivity(intent);
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
private OnClickListener button_1Listener = new OnClickListener() {
@Override
public void onClick(View v) {
mediaPlayer.stop();
Intent intent = new Intent(SpelaSaga.this, VisaIngressSaga.class);
Bundle bundle = new Bundle();
bundle.putString("Titel", titel);
bundle.putInt("Position", position);
intent.putExtras(bundle);
SpelaSaga.this.startActivity(intent);
finish();
}
};
private OnClickListener button_2Listener = new OnClickListener() {
@Override
public void onClick(View v) {
mediaPlayer.pause();
}
};
我环顾四周,只找到旧的需要更多编码的流媒体教程版本。希望有人知道如何控制流媒体。
I have build an app that use mp3-files. In the first version the files was included in the apk-file. I now are working on a version that have the mp3-files in an URL-resource.
I have adjust the code and almost everything works fine.
The problem is that the buttons for stop, pause and play now not is working.
This is the code that start the streaming (works fine):
private void playAudio(String media) {
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mediaPlayer.setDataSource(media);
mediaPlayer.prepare(); // might take long! (for buffering, etc)
mediaPlayer.start();
} catch (Exception e) {
Log.e(TAG, "error: " + e.getMessage(), e);
}
mediaPlayer.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer arg0) {
finish();
}
});
}
And this is the functions I use for stopping etc. Worked fine with local file (raw-resources) But now it is not working:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
Intent intent = new Intent(SpelaSaga.this, VisaIngressSaga.class);
Bundle bundle = new Bundle();
bundle.putString("Titel", titel);
bundle.putInt("Position", position);
intent.putExtras(bundle);
SpelaSaga.this.startActivity(intent);
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
private OnClickListener button_1Listener = new OnClickListener() {
@Override
public void onClick(View v) {
mediaPlayer.stop();
Intent intent = new Intent(SpelaSaga.this, VisaIngressSaga.class);
Bundle bundle = new Bundle();
bundle.putString("Titel", titel);
bundle.putInt("Position", position);
intent.putExtras(bundle);
SpelaSaga.this.startActivity(intent);
finish();
}
};
private OnClickListener button_2Listener = new OnClickListener() {
@Override
public void onClick(View v) {
mediaPlayer.pause();
}
};
I have looked around and have only find old versions of streaming tutorials that needs much more coding. Hope someone out there have a good idea of how to control the streaming.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我创建了非常相似的应用程序,我的代码如下所示:
当我按下后退按钮时:
我希望这个答案可以帮助您;)
I created very similar app, my code looks like this:
when I press back button:
i hope, that this answer help You ;)