Audio Crossfading в Android - PullRequest
       32

Audio Crossfading в Android

5 голосов
/ 12 июля 2011

Я занимаюсь разработкой медиаплеера для своей учебной цели и хочу, чтобы в приложении медиаплеера была функция кроссфейдинга. Но я понятия не имею, с чего начать. Я пытался искать в Интернете, но не повезло. Я использую класс Android MediaPlayer для всех операций, связанных с медиаплеером. Любой знает любой обходной путь для достижения того же.

спасибо за вашу поддержку

Ответы [ 3 ]

1 голос
/ 19 мая 2015

Попробуйте использовать два объекта MediaPlayer один за другим с кроссфейдом, как в этом классе https://github.com/psaravan/JamsMusicPlayer/blob/f165057dd664727ed06b9fac2c27557e5fb7e7ee/jamsMusicPlayer/src/main/java/com/jams/music/player/Services/AudioPlaybackService.java

1 голос
/ 03 ноября 2018

Когда второй медиаплеер запускает первую паузу на некоторое время (на некоторых устройствах в основном на samsung), переход не является плавным.MediaPlayer имеет эту проблему, и о ней давно сообщили в Google, но она все еще не решена (https://issuetracker.google.com/issues/36931073), поэтому мы ничего не можем с этим поделать. Поэтому я использовал Exoplayer для воспроизведения звука, и он работает очень плавно, без пауз.

1 голос
/ 13 июля 2011

Попробуйте использовать AudioTrack вместо MediaPlayer. Как правило, я бы предложил следующий план:

  • Изучите некоторые источники для приложения, которое использует AudioTrack. Хороший игрок может быть найден здесь

Это аудиоплеер AAC, использующий JNI для декодирования AAC-аудио.

  • Найти библиотеку декодирования MP3. Библиотека должна быть библиотекой Java (посмотрите, например, this , или, возможно, есть другие библиотеки (я не использовал такие библиотеки Java)) или библиотеку C / C ++ (в данном случае вы будет использовать его через JNI).
  • Когда вы получите простой работающий MP3-плеер, добавьте ручное затухание (это должно быть легко, если вы знаете основы цифрового аудио).
...