Android Visualizer не будет принимать аудио из потоковой музыки Spotify - PullRequest
0 голосов
/ 16 января 2019

Я создаю Android-приложение для визуализации звука для потоковой передачи музыки Spotify. Я использую android-streaming-sdk от Spotify, который создает локальный сервис (нет необходимости устанавливать приложение Spotify) и воспроизводит музыку из приложения. Мне трудно заставить библиотеку Androids Visualizer забирать любой звук из Spotify (он работает нормально, если я использую локальный файл .mp3).

//Start playing spotify track
player.playUri(MainActivity.operationCallback, 
               VisualizerModel.getInstance().getTrackURI(), 0, 0);

.... other code ....

MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

int audioSessionId = mediaPlayer.getAudioSessionId();

visualizer = new Visualizer(audioSessionId);
visualizer.setCaptureSize(audioSampleSize); 
visualizer.setDataCaptureListener(this, Visualizer.getMaxCaptureRate(), true, true);

visualizer.setEnabled (истина);

Если я запускаю это, все компилируется и работает нормально, но визуализатор не воспринимает звук. Это заставляет меня думать, что аудио sessionId не совпадает с тем, на котором воспроизводится Spotify. Однако, если я переключаю audioSessionId на 0 (который должен прослушивать все аудиосеансы, смешанные с тем, что я понимаю), он вылетает с этой ошибкой:

E/AudioEffect: set(): AudioFlinger could not create effect, status: -1
E/visualizers-JNI: Visualizer initCheck failed -3
E/Visualizer-JAVA: Error code -3 when initializing Visualizer.

Согласно их документации, эта ошибка означает: Операция не выполнена из-за неправильной инициализации объекта.

Я использую API 24 (Android 7.0).

Пожалуйста, дайте мне знать, если у вас есть предложения или альтернатива использованию библиотеки визуализатора Android. Я чувствую, что моя главная проблема в том, что я не уверен, как найти audioSessionId, на котором воспроизводится Spotify, и поскольку Spotify android-streaming-sdk находится в бета-версии (и не упоминается на их веб-сайте), на нем практически нет документации из того, что я вижу на Github.

Спасибо, что нашли время прочитать мой выпуск!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...