как получить startOffset of File как получение в AssetFileDescriptor - PullRequest
0 голосов
/ 01 июля 2018

Я использую AssetFileDescriptor для получения StartOffset, вызывая getStartOffset, который я поместил в папку приложения raw / assets.

Как получить аналогичный startOffset, используя объект File для файлов, которые не находятся в папке assets / raw? но в скачанном в магазине приложений и есть объект файла для него.

AssetFileDescriptor fd0 = getResources().openRawResourceFd(R.raw.lycka);
AssetFileDescriptor fd1 = getResources().openRawResourceFd(R.raw.nuyorica);

fileAoffset = (int)fd0.getStartOffset();
fileAlength = (int)fd0.getLength();
fileBoffset = (int)fd1.getStartOffset();
fileBlength = (int)fd1.getLength();

File file = new File("data/user/0/com.myapp.com/files/audio/-LGHK12NDo83k9pHakIZ.m4a");
long fileLen = file.length();
// i want startOffset from File object as getting in AssetFileDescriptor

1 Ответ

0 голосов
/ 01 июля 2018

Если вы хотите, чтобы StartOffset использовал путь к файлу, вы можете использовать приведенный ниже код

    AssetFileDescriptor afd = null;
    try {
        AssetManager manager = context.getAssets();
        afd = manager.openNonAssetFd(fileName);
        return new long[] { afd.getParcelFileDescriptor().detachFd(),
                            afd.getStartOffset(),
                            afd.getLength() };
    } catch (IOException e) {

        if (!e.getMessage().equals("") && !e.getMessage().equals(fileName)) {
            Log.e(LOGTAG, "Error while loading asset " + fileName + ": " + e);
        }
        return new long[] {-1, -1, -1};
    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...