ДЕМОНСТРАЦИЯ API MediaPlayerDemo_Video.java

#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()