Почему MediaPlayer выдает ошибку NOT present при создании его экземпляра?

#android #adt #android-mediaplayer #logcat

#Android #adt #android-медиаплеер #логкэт #android-mediaplayer

Вопрос:

При создании экземпляра MediaPlayer LogCat показывает эту ошибку:

QCMediaPlayer mediaplayer ОТСУТСТВУЕТ

Почему это так и нормально ли это?

Образец:

 package com.example.testapp;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;



public class MainActivity extends Activity{


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        MediaPlayer mediaPlayer = new MediaPlayer();
    }
}
  

Ответ №1:

Это означает, что ваша платформа не поддерживает QCMediaPlayer. QCMediaPlayer предоставляет расширенные API и интерфейсы для получения и установки атрибутов MPD для протокола DASH в совместимых сборках Snapdragon. Таким образом, эта ошибка не должна влиять на воспроизведение мультимедиа в обычном случае

Проверьте эти источники, чтобы узнать более подробную информацию:

QCMediaPlayer.java

Комментарии:

1. Если платформа не поддерживает QCMediaPlayer, зачем ей пытаться запустить QCMediaPlayer?

2. И почему операционная система Android позволяет тому или иному приложению, а также самой себе, выдавать сообщения об ошибках в первую очередь? Разве это не должно быть полностью удалено в коммерчески запущенной системе, которая должна быть вне режима отладки?

3. Это не должно приниматься; это не дает никакой информации о том, как решить эту проблему, которая заключается в том, что на некоторых платформах MediaPlayer полностью нефункциональен.

4. Есть ли какое-либо решение для предотвращения вызова QCMediaPlayer в первую очередь?

5. Что вы имеете в виду под «вашей платформой»?

Ответ №2:

Я знаю, что это не ответ на вопрос «Почему» это происходит, но если кто-то хочет заставить это работать (по крайней мере, для меня это сработало), вы можете инициализировать MediaPlayer не путем создания нового экземпляра и настройки источника данных, а путем его создания с помощью static метода create :

 MediaPlayer player = MediaPlayer.create(this, Uri.parse(sound_file_path));
  

или

 MediaPlayer player = MediaPlayer.create(this, soundRedId, loop);
  

Комментарии:

1. Я получил ошибку таким образом в первую очередь. В моем случае я знаю, что целевой файл mp3 не существует, возможно, это проблема.

Ответ №3:

добавление mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); решило проблему для меня. Изначально я пробовал с другими типами, однако это не сработало.

Комментарии:

1. Это было решение!

2. У меня не работает! Api 19 (KitKat), lg l65.Создайте MediaPlayer player = MediaPlayer() case.

Ответ №4:

Как ни странно, то, что, казалось, исправило это для меня, — это перезапуск Android Studio. Затем я запустил в режиме отладки, и он начал работать, и с тех пор я не видел ошибки. Странно!

Ответ №5:

Я добавил этот код:

 MediaPlayer mediaPlayer = MediaPlayer.create(MainActivity.this,R.raw.menumusic);
mediaPlayer.start();
  

И это не работало, то, что, казалось, исправило это для меня, — это перезапуск Android Studio.
Надеюсь, это кому-нибудь поможет.