Android 对SD卡中的文件使用AssetFileDescriptor

Android 对SD卡中的文件使用AssetFileDescriptor,android,audio,file-descriptor,Android,Audio,File Descriptor,我正在尝试在超级强大的应用程序中实现用户偏好选择音乐。 我无法通过AssetFileDescriptor提取sd卡中的更多音乐。 请引导,以便我可以访问用户音乐数据。 我无法使用FileDescriptor,因为它不接受。 请提供帮助,以便我可以通过AssetFileDescriptor访问用户音乐 String samplerateString = null, buffersizeString = null; if (Build.VERSION.SDK_INT >= 1

我正在尝试在超级强大的应用程序中实现用户偏好选择音乐。 我无法通过
AssetFileDescriptor
提取sd卡中的更多音乐。 请引导,以便我可以访问用户音乐数据。 我无法使用
FileDescriptor
,因为它不接受。 请提供帮助,以便我可以通过
AssetFileDescriptor
访问用户音乐

 String samplerateString = null, buffersizeString = null;
        if (Build.VERSION.SDK_INT >= 17) {
            AudioManager audioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
            samplerateString = audioManager.getProperty(AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE);
            buffersizeString = audioManager.getProperty(AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER);
        }
    if (samplerateString == null) samplerateString = "44100";
    if (buffersizeString == null) buffersizeString = "512";

    add.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(context, SelectActivity.class);
            startActivityForResult(intent,1);
        }
    });
    String audioPath= Environment.getExternalStorageDirectory().getPath()+"/Music/x.mp3";
    Log.d("xyz",audioPath);


    try {
        FileDescriptor fd0 = context.getAssets().openFd(audioPath).getFileDescriptor();
        FileInputStream fis = new FileInputStream(audioPath);
        fd = fis.getFD();
    } catch (IOException e1) {
        e1.printStackTrace();
    }
    fd1 = getResources().openRawResourceFd(R.raw.nuyorica);

    long[] params = {
            fd0.getStartOffset(),
            fd0.getLength(),
            fd1.getStartOffset(),
            fd1.getLength(),
            Integer.parseInt(samplerateString),
            Integer.parseInt(buffersizeString)
    };
    try {

        fd0.getParcelFileDescriptor().close();
        fd1.getParcelFileDescriptor().close();
    } catch (IOException e) {}
    SuperpoweredExample(getPackageResourcePath(), params);

事先非常感谢..

资产文件描述符?您在哪里使用AssetFileDescriptor?你什么意思?真的很抱歉说不清楚!!以前我是通过raw文件夹导入它的,如下所示:fd0=getResources().openrawrecourcefd(R.raw.lycka;fd1=getResources().openrawrecourcefd(R.raw.nuyorica);但现在我想从原始文件夹切换到sd卡。我想提取sd卡中的音乐,而不是原始文件夹中的音乐。我该怎么做?您找到了解决方案吗?如果是,请告诉我,我面临着同样的问题。
private static MappedByteBuffer loadModelFileFromSdcard(AssetManager assets, String modelFilename)
            throws IOException {
        File file = new File("sdcard/"+modelFilename);
        FileInputStream inputStream = new FileInputStream(file);
        FileChannel fileChannel = inputStream.getChannel();
        return fileChannel.map(FileChannel.MapMode.READ_ONLY, 0, file.length());
    }