Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android MediaPlayer错误_Java_Android_Audio - Fatal编程技术网

Java Android MediaPlayer错误

Java Android MediaPlayer错误,java,android,audio,Java,Android,Audio,我在播放音频时遇到了上面的错误,你知道我为什么会遇到这个错误吗,同样的代码在某些地方工作,我是从一个片段调用静态函数 }如果有帮助,请告诉我- public static void playAudio(String aud, Context context) { final MediaPlayer mp; try { AssetFileDescriptor fileDescriptor = context.getAssets().openFd(aud);

我在播放音频时遇到了上面的错误,你知道我为什么会遇到这个错误吗,同样的代码在某些地方工作,我是从一个片段调用静态函数


}

如果有帮助,请告诉我-

public static void playAudio(String aud, Context context) {
final MediaPlayer mp;

try {
    AssetFileDescriptor fileDescriptor =
            context.getAssets().openFd(aud);
    mp = new MediaPlayer();
    mp.setDataSource(fileDescriptor.getFileDescriptor(),
            fileDescriptor.getStartOffset(),
            fileDescriptor.getLength());
    fileDescriptor.close();
    mp.prepare();
    mp.start();
} catch (IllegalArgumentException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IllegalStateException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

在这里,我首先尝试获取音频焦点,然后让mediaplayer异步执行任务。

我将此标记为回答,因为您花了一些时间编写它,它工作正常,,,我的问题在于我正在测试的手机,我重新启动它并将音量设置为最大值每件事都正常谢谢您的时间我的不好
                        Global.playAudio("sounds/add_comment.mp3",context); 
public static void playAudio(String aud, Context context) {
final MediaPlayer mp;

try {
    AssetFileDescriptor fileDescriptor =
            context.getAssets().openFd(aud);
    mp = new MediaPlayer();
    mp.setDataSource(fileDescriptor.getFileDescriptor(),
            fileDescriptor.getStartOffset(),
            fileDescriptor.getLength());
    fileDescriptor.close();
    mp.prepare();
    mp.start();
} catch (IllegalArgumentException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IllegalStateException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
public class MainActivity extends AppCompatActivity implements MediaPlayer.OnPreparedListener,AudioManager.OnAudioFocusChangeListener{
MediaPlayer mp;
AudioManager mAudioManager ;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    int result = mAudioManager.requestAudioFocus(this, AudioManager.STREAM_MUSIC,
            AudioManager.AUDIOFOCUS_GAIN);
    if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
        //got audio focus
        playAudio("bell.mp3",this);
    }

}

private void playAudio(String aud, Context context) {
    try {
        AssetFileDescriptor fileDescriptor =
                context.getAssets().openFd(aud);
        mp = new MediaPlayer();
        mp.setDataSource(fileDescriptor.getFileDescriptor(),
                fileDescriptor.getStartOffset(),
                fileDescriptor.getLength());
        fileDescriptor.close();
        mp.prepareAsync();
        mp.setOnPreparedListener(this);
    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}


@Override
public void onPrepared(MediaPlayer mediaPlayer) {
    mp.start();
}

@Override
public void onAudioFocusChange(int i) {

}
}