android - 音频在Android中无法正常工作

标签 android audio media-player audio-streaming

我尝试根据用户选择从原始文件夹播放音频文件,但是如果用户选择或更改两个或多个文件,则音频无法正常工作,但是在更改选项后,它会流式传输选定文件以及先前选定的文件。我是android新手...我在下面发布了我的代码,任何人都可以帮我解决这个问题。

switch (Global.id)
{
case R.id.radioButton1:
    mMediaPlayer = MediaPlayer.create(context, R.raw.kalimba);
    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    mMediaPlayer.setLooping(true);
    mMediaPlayer.start();
    break;

case R.id.radioButton2:
    mMediaPlayer = MediaPlayer.create(context, R.raw.maid);
    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    mMediaPlayer.setLooping(true);
    mMediaPlayer.start();
    break;

case R.id.radioButton3:
    mMediaPlayer = MediaPlayer.create(context, R.raw.sleep_away);
    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    mMediaPlayer.setLooping(true);
    mMediaPlayer.start();
    break;
}

这是 onDestroy 方法。
private void destroy()
{
mMediaPlayer.release();
mMediaPlayer.reset();
mMediaPlayer.stop();            
}

最佳答案

试试这个

if ( mMediaPlayer.isPlaying() )  // Checking if already playing any song
{
     mMediaPlayer.reset();
     mMediaPlayer.stop();

}

在开关盒中添加以上条件
switch (Global.id)
{
case R.id.radioButton1:
    mMediaPlayer = MediaPlayer.create(context, R.raw.kalimba);
    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    mMediaPlayer.setLooping(true);

    if ( mMediaPlayer.isPlaying() )  // Checking if already playing any song
    {
        mMediaPlayer.reset();
        mMediaPlayer.stop();
    }
    mMediaPlayer.start();
    break;
case R.id.radioButton2:
    mMediaPlayer = MediaPlayer.create(context, R.raw.maid);
    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    mMediaPlayer.setLooping(true);
    if ( mMediaPlayer.isPlaying() )  // Checking if already playing any song
    {
        mMediaPlayer.reset();
        mMediaPlayer.stop();
    }
    mMediaPlayer.start();
    break;
case R.id.radioButton3:
    mMediaPlayer = MediaPlayer.create(context, R.raw.sleep_away);
    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    mMediaPlayer.setLooping(true);
    if ( mMediaPlayer.isPlaying() )  // Checking if already playing any song
    {
        mMediaPlayer.reset();
        mMediaPlayer.stop();
    }
    mMediaPlayer.start();
    break;
}

关于android - 音频在Android中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22012430/

相关文章:

java - Android - 工具栏中的多个菜单

android - 是否有为所有用户卸载应用程序的 Intent ?

java - 流模式下的 AudioTrack MODE_STREAMING

iphone - 与应用程序相关的设备的声音控制

android - 每按一下按钮即可播放声音(Android =

android - Android 4.1.2 Phonegap (Cordova) 中的自定义波斯语和阿拉伯语字体不起作用

math - 如何将波浪数据转换为复数

c# - 在C#中更有效地播放声音

c# - 在 MediaPlayerLauncher 的媒体完成后恢复 spotify/radio - WP7

android - 有什么方法可以让 Animation-List xml set drawable 突然变成 BitmapDrawable?