我想从res/raw文件夹播放音频文件。
但得到的错误
准备失败:状态=为0x1Android播放器提出异常准备失败:状态0x1
我的代码:
package com.example.lvm;
import java.io.IOException;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
Button introAudio;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
introAudio=(Button)findViewById(R.id.introAudio);
introAudio.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
MediaPlayer mp = new MediaPlayer();
String name = "greeting";
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});
try {
mp.setDataSource("android.resource://com.example.lvm/raw/"+name);
mp.prepare();
mp.start();
} catch (Exception e) {
Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_LONG).show();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
我有同样的问题。但在我的情况下,我下载并保存该文件。文件存在之前,我打电话准备,其他所有流都关闭。如果我稍后再打电话准备,它不会抛出异常。不知道有什么问题,但还没有找到解决方案。 文件名只是guid –
像往常一样,只要我分享我的评论,我找到了一个解决方案。 首先,我检查DDMS中的日志以查看有关错误的任何其他信息。我在异常之前发现错误'无法打开文件'audio/2f32a5de.mp4'。 (没有这样的文件或目录)'。之后,我发现在一个特定情况下,我没有正确创建完整路径:) –