2011-04-15 3 views
3

Я не увенчался успехом при создании действительного android.net.Uri, который ссылается на файл mp4 в каталоге моих ресурсов, который требуется для аргумента VideoView.setVideoURI(android.net.Uri uri).Как получить Uri файла в активах для аргумента в VideoView.setVideoURI()

Есть ли у кого-нибудь фрагмент кода, демонстрирующий, как я могу построить Uri?

ответ

3

Uri.parse("file:///android_asset/path/to/your.mp4") является Uri файлу в ваших активах. Независимо от того, можете ли вы воспроизводить видео из своих активов, я не могу сказать, поскольку я никогда не пробовал.

+2

Я пробовал: vw.setVideoURI (Uri.parse ("file: /// android_asset /" + video.getFileName(). ToLowerCase())); и ваш пример vw.setVideoURI (Uri.parse ("file: // android_asset /" + video.getFileName(). toLowerCase())); но просто получите сообщение «Извините, что это видео невозможно воспроизвести». – David

+0

Я могу получить FileDescriptor для файла в активах, и я знаю, что MediaPlayer имеет setDataSource (FileDescriptor), поэтому кажется неудачным надзором, что VideoView также не обеспечивает этот интерфейс. – David

0

Я не думаю, что другие приложения могут доступ к активам, которые являются частью вашего .apk напрямую - вы можете скопировать его на SDCard и иметь доступ просмотра в PDF оттуда

Чтобы скопировать файл из активов, вы можете использовать InputStream is = context.getAssets(). open ("UserGuide.pdf"); , чтобы получить его содержимое, затем записать его в другой файл.