我知道这是一个非常常见的问题,但是我在努力获取输出。以下是我的代码:
try {
FileInputStream fileInputStream = new FileInputStream(new File("/Users/JackPowell/AndroidStudioProjects/Shaker/app/src/main/res/raw/na.mp3"));
FileDescriptor fd = fileInputStream.getFD();
}catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
错误显示该目录不存在。有人能告诉我出了什么问题吗?
答案 0 :(得分:2)
'use strict';
angular.module('identicaApp.mainPage', [
'ngRoute',
'identicaApp.common'
])
// Here you must inject your 'ROOT_PATH' constant
.config(['$routeProvider', 'ROOT_PATH', function($routeProvider, ROOT_PATH) {
$routeProvider.when('/main', {
templateUrl: ROOT_PATH + 'main_page/main_page.html', // You must reference it by its name (ROOT_PATH)
controller: 'MainPageCtrl'
});
}])
.controller('MainPageCtrl', [function() {
}]);
是OS X计算机上文件的路径。 AFAIK,这个星球上没有Android设备,根目录下有一个/Users/JackPowell/AndroidStudioProjects/Shaker/app/src/main/res/raw/na.mp3
目录。
我的猜测是你试图读取原始资源。在这种情况下,请使用/Users
及其Resources
方法,传入openRawResource()
。您可以通过R.raw.na
从任何Resources
获取Context
个对象(例如您的活动)。
答案 1 :(得分:0)
这是我的解决方案:
AssetFileDescriptor afd = mContext.getResources().openRawResourceFd(R.raw.na);
try {
mPlayer.setDataSource(afd.getFileDescriptor());
} catch (IOException e) {
e.printStackTrace();
}
mPlayer.prepare;
mPlayer.setOnPreparedListener(this);