#android
#Android
Вопрос:
Я пытаюсь использовать демонстрацию API **MediaPlayerDemo_Video.java *. Я новичок в программировании и пытаюсь выяснить, как задать путь к локальному видео, хранящемуся в папке raw. Может кто-нибудь указать, как ссылаться на этот файл? Спасибо.
private void playVideo(Integer Media) {
doCleanUp();
try {
switch (Media) {
case LOCAL_VIDEO:
/*
* TODO: Set the path variable to a local media file path.
*/
path = "";
if (path == "") {
// Tell the user to provide a media file URL.
Toast
.makeText(
MediaPlayerDemo_Video.this,
"Please edit MediaPlayerDemo_Video Activity, "
"and set the path variable to your media file path."
" Your media file must be stored on sdcard.",
Toast.LENGTH_LONG).show();
}
Комментарии:
1. Мне непонятно: вы хотите воспроизвести файл из
res/raw
папки (как вы говорите) или с SD-карты (как указано в вашем коде)?2. лол. Извините, я новичок в этом и не понял, что код ссылается на SD-карту. Вот фактический ApiDemo с сайта разработчиков Android, который я пытаюсь заставить работать с фильмом в папке raw. developer.android.com/resources/samples/ApiDemos/src/com/… Как мне изменить это, чтобы ссылаться на локальный ресурс? Спасибо. 🙂
3. Тогда мой ответ должен вам помочь. 🙂
Ответ №1:
Вы можете открывать необработанные ресурсы, используя идентификатор ресурса. Если имя файла «test.avi», то должно сработать что-то вроде этого:
getResources().openRawResource(com.YourProject.R.raw.test);
Но это для чтения файла, поэтому, если вы хотите открыть файл с помощью медиаплеера, я думаю, вам следует поместить его на SD-карту. Затем вы можете получить путь с помощью:
String path = Environment.getExternalStorageDirectory() "/test.avi";
Редактировать:
Хорошо, я понял, как открыть файл в raw
папке с MediaPlayer
:
Измените это:
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setDataSource(path);
К этому:
mMediaPlayer = MediaPlayer.create(this, com.YourProject.R.raw.test);
Комментарии:
1. Как мне ссылаться на это в приведенном выше коде (если это возможно)? Я пытаюсь заставить APIDEMO работать отсюда: developer.android.com/resources/samples/ApiDemos/src/com /. … Я попытался установить path = openRawResource(com. YourProject.R.raw.test); (со ссылкой на мой ресурс), но он выдал ошибку, которая мне понадобилась для создания метода openRawResource.
2. Да, извините, я забыл поставить
getResources().
3. Кстати, я думаю, что внешние приложения не могут получить доступ к вашей
raw
папке приложений. Итак, вы должны забыть о папке raw и поместить видео на SD-карту и использоватьEnvironment.getExternalStorageDirectory() "/test.avi"
4. Что, если видео является частью приложения? Это приложение, в котором будут обучающие видеоролики. (Я знаю, что включение видео сделает приложение огромным). 🙂
5. Спасибо LAS_VEGAS! Я не уверен, сработало ли это, потому что оно не устанавливается на эмулятор (видео может быть слишком большим), но сейчас я не получаю сообщение об ошибке, так что отличное начало! Я ценю помощь!
Ответ №2:
В любом случае, вы можете захотеть взглянуть на метод AssetManager.list()