java - 从内部存储播放音频文件的应用程序,Android Studio (JAVA)
问题描述
我试图创建一个播放 wavfiles 的应用程序,这些 wavfiles 是从我制作的另一个记录 wavFiles 的应用程序创建的。
我想播放的 wav 文件与我的 android 设备一起存储在以下目录中。
“/data/data/com.example.androidaudiorecorder/files/”
这是我到目前为止尝试的代码:
public class MainActivity extends AppCompatActivity {
Button playEvent ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
playEvent= (Button) findViewById(R.id.btnPlayEvent);
playEvent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
playEvent( );
}
});
}
public static void playEvent(){
try {
MediaPlayer player = new MediaPlayer();
player = new MediaPlayer();
player.setDataSource("/data/data/com.example.androidaudiorecorder/files/recording_DOG.wav");
player.prepare();
player.start();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (Exception e) {
System.out.println("Exception of type : " + e.toString());
e.printStackTrace();
}
}
}
}
不幸的是,当我加载应用程序并按下播放时,没有任何反应。我不确定这是否是使用文件目录的正确方法。任何有关如何解决此问题的建议将不胜感激。
解决方案
1)在读取/写入存储中的任何内容之前,您需要在 android 清单文件中授予访问存储的权限。
2)读取文件,
File dir = Environment.getExternalStorageDirectory();
File yourFile = new File(dir, "path/filename.extension");
推荐阅读
- android - flutter android连接真机显示这个错误
- safari - Safari 14.0 中没有缓存的硬重新加载网页
- mysql - 接单5次以上的酒店(MYSQL)
- prometheus-operator - Prometheus算子中rules和rules1.14的区别
- java - 为什么矩阵加法在此代码中不起作用?
- cuda - 双数组的CUDA min减少和索引
- jquery - 用于多种选择的 Oracle 顶点列表管理器
- android - Kotlin 异步任务/Firebase 查询,等待结果的最佳方法?
- visual-studio-code - 您如何识别在 VSCode 中配置了片段的扩展名?
- mysql - 如何在 NodeJs 中使用 Sequelize 在表模型中应用外键?