java - 声音文件在 android MediaPlayer 中作为变量

标签 java android

在学习 android/java 的过程中,我想创建一个可以从原始文件夹播放特定声音的函数。

我正在尝试将声音文件定义为字符串,以便可以重复使用该函数。 但是我坚持“无法解析符号”。

public class MainActivity extends ActionBarActivity {
MediaPlayer player;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    playSound("dogBark");
}

public void playSound(String soundFile) {
    player = MediaPlayer.create(MainActivity.this,R.raw.soundFile); // Cannot resolve symbol 'soundFile'
    player.setLooping(true);
    player.start();

}
...

我确信这是一个基本的知识匮乏问题,但非常感谢任何帮助。

编辑:

如果我在函数中添加实际的声音文件,上述函数运行良好:

player = MediaPLayer.create(MainActivity.this,R.raw.dogBark);

但我想做的是在调用函数时定义声音文件:

playSound("dogBark");

最佳答案

你可以这样做,对我来说效果很好:

playMp3("titanic");

添加这个方法:

private void playMp3(String nameOfFile){
   MediaPlayer mPlayer = MediaPlayer.create(this, getResources().getIdentifier(nameOfFile, "raw", getPackageName()));
   mPlayer.start();
}

这对你来说绝对有用。

关于java - 声音文件在 android MediaPlayer 中作为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31744683/

相关文章:

JAVA Files.readAllBytes() 不更改字符集

Android 线性布局覆盖 onSaveInstanceState

android - 如何制作另一个文本 block ?

java - 最长的盈利交易算法

java - 即使 jar 包含在编译中,程序也找不到 RequestEntity 类

java - PrintWriter 是线程安全的吗?

java - 创建新报价时无法添加产品详细信息

php - 从 PHP 服务器获取图像和元数据到 android

android - 如何调整 ScrollView 的大小以适合底部 60% 的屏幕?

java - 阻止用户输入扩展文本字段