我想從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'。 (沒有這樣的文件或目錄)'。之後,我發現在一個特定情況下,我沒有正確創建完整路徑:) –