как использовать медиаплеер (из сервиса) без QCMediaPlayer? - PullRequest
0 голосов
/ 21 марта 2020

Я пытаюсь (и успешно с помощью прилагаемого кода) создавать и воспроизводить mp3-файлы из моей службы foregroundservice. после МНОГО пробной ошибки и ошибки у меня она работает в текущем состоянии, но ничто из того, что я могу исследовать онлайн и / или пытался, не остановит ошибки

E/ExtMediaPlayer-JNI: env->IsInstanceOf fails
E/MediaPlayer-JNI: JNIMediaPlayerFactory: bIsQCMediaPlayerPresent 0

каждый раз, когда создается медиаплеер. - он выдает эти ошибки НЕМЕДЛЕННО после = new MediaPlayer(); и делает то же самое, когда я использую метод MediaPlayer.create(). (да, я остановился и отпустил его, когда закончил)

           try {
                    if (mediaPlayer_voice == null) {
                        //iteration 1
                        mediaPlayer_voice = new MediaPlayer();
                    } else {
                        //iteration 2+
                        mediaPlayer_voice.reset();
                    }
                } catch (Exception e) {
                    Log.e(TAG, "play: Error: creating new mediaplayer");
                    Log.e(TAG, "Cause: " + String.valueOf(e.getCause()));
                    Log.e(TAG, "message: " + e.getMessage());
                    e.printStackTrace();
                }

                AssetFileDescriptor afd = getAssets().openFd(resourceFilenameArray[playIndex]);
                mediaPlayer_voice.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(),
                        afd.getLength());
                mediaPlayer_voice.setOnCompletionListener(this);
                mediaPlayer_voice.setVolume(0.9f, 0.9f);
                mediaPlayer_voice.prepare();
                mediaPlayer_voice.start();

Наиболее близким к "ответу", который я могу найти, является то, что devcice под управлением Nougat: Api 25 не поддерживает QCMediaPlayer ... Медиаплеер работает , но logcat насыщен сообщениями об ошибках, от которых я не может найти способ избавиться? (это является проблемой для меня, так как мне нужен вывод этого logcat в качестве доказательства работы моего приложения, и я не могу иметь десятки и десятки ошибок каждые пару секунд !!)

Как я могу избавиться от этих ошибок? Как я могу воспроизводить аудио без использования QCMediaPlayer?

(я никогда не просил об этом, я даже не знал, что это было до тех пор, пока эта головная боль ...)

к сожалению, Soundpool не вариант, так как для резонаторов я тоже не могу отладить, половина из аудиофайлов воспроизводится просто белый шум / stati c, несмотря на то, что все используют один и тот же метод / filetype. (да, я пытался получить новые аудиофайлы, чтобы увидеть, были ли они повреждены или нет)

ценит помощь любого, кто может пролить свет на это (или даже способ просто подавить эти предупреждения из logcat? как я уже сказал: это Iworks * мне просто нужно предупредить go на этом этапе.)

edit: просто чтобы прояснить: я прочитал различные сообщения stackOverflow на этом субъект (десятки из них), но до сих пор ни один из них на самом деле не дал решения? вот о чем я прошу.

...