我正在我的应用程序中构建 MP3 播放器,但收到一条错误消息,指出“raw 无法解析或不是字段”: mMediaPlayer = MediaPlayer.create(this, R.raw.test_cbr);
我不确定 R.raw.test_cbr 到底是什么(我没有编写此代码)有人可以解释 R.raw.test_cbr 是什么以及如何解决这个问题吗?
JAVA:
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;
import com.idg.omv.R;
public class MediaPlayerDemo extends Activity {
private static final String TAG = "MediaPlayerDemo";
private MediaPlayer mMediaPlayer;
private static final String MEDIA = "media";
private static final int LOCAL_AUDIO = 1;
private static final int STREAM_AUDIO = 2;
private static final int RESOURCES_AUDIO = 3;
private static final int LOCAL_VIDEO = 4;
private static final int STREAM_VIDEO = 5;
private String path;
private TextView tx;
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
tx = new TextView(this);
setContentView(tx);
Bundle extras = getIntent().getExtras();
playAudio(extras.getInt(MEDIA));
}
private void playAudio(Integer media) {
try {
switch (media) {
case LOCAL_AUDIO:
/**
* TODO: Set the path variable to a local audio file path.
*/
path = "";
if (path == "") {
// Tell the user to provide an audio file URL.
Toast
.makeText(
MediaPlayerDemo.this,
"Please edit MediaPlayer_Audio Activity, "
+ "and set the path variable to your audio file path."
+ " Your audio file must be stored on sdcard.",
Toast.LENGTH_LONG).show();
}
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setDataSource(path);
mMediaPlayer.prepare();
mMediaPlayer.start();
break;
case RESOURCES_AUDIO:
/**
* TODO: Upload a audio file to res/raw folder and provide
* its resid in MediaPlayer.create() method.
*/
mMediaPlayer = MediaPlayer.create(this, R.raw.test_cbr);
mMediaPlayer.start();
}
tx.setText("Playing audio...");
} catch (Exception e) {
Log.e(TAG, "error: " + e.getMessage(), e);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
// TODO Auto-generated method stub
if (mMediaPlayer != null) {
mMediaPlayer.release();
mMediaPlayer = null;
}
}
}
我不确定 R.raw.test_cbr 到底是什么(我没有编写此代码)有人可以解释 R.raw.test_cbr 是什么以及如何解决这个问题吗?
R.raw
指的是放置在的“原始”资源res/raw
。 “原始”意味着资源文件按原样包含在应用程序包中,没有任何编译时修改。
(至少在理论上。我遇到过工具链修改了我的原始资源的问题,但这超出了这个问题的范围。)
您会收到此编译时错误,因为您没有res/raw
文件夹和R.raw
嵌套类未生成于R.java
.
R.raw.test_cbr
引用一个文件test_cbr.ext
in the res/raw
文件夹,在哪里ext
只是一些文件扩展名。
既然你在喂食MediaPlayer
,你应该放置一些音频媒体文件test_cbr
e.g. text_cbr.mp3
in res/raw
并重建您的应用程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)