#android
#Android
Вопрос:
Я хочу воспроизвести аудиофайл mp3 с помощью MediaPlayer, когда я вызываю метод start(), требуется несколько секунд (1 или 2 секунды) до воспроизведения аудиофайла.
Теперь я хочу, чтобы он воспроизводился немедленно, когда я нажимаю кнопку «Пуск». пожалуйста, помогите.
вот мой код :
MediaPlayer player = new MediaPlayer();
player.setDataSource(path);
player.prepare();
player.seekTo(_start_at);
player.start();
и logcat :
V / MediaPlayer: получено сообщение msg = 8, ext1 = 0, ext2 = 0
V / MediaPlayer: уведомлять (8, 0, 0) об обратном вызове при отключенном mediaplayer
V/ MediaPlayer-JNI: setDataSourceFD: fd 57
V/ MediaPlayer: setDataSource(57, 0, 576460752303423487)
V / MediaPlayer: получено сообщение msg = 8, ext1 = 0, ext2 = 0
V / MediaPlayer: уведомлять (8, 0, 0) об обратном вызове при отключенном mediaplayer
V / MediaPlayer: setVideoSurfaceTexture
V / MediaPlayer: подготовить
V / MediaPlayer: получено сообщение msg = 200, ext1 = 973, ext2 = 0
W / MediaPlayer: информация / предупреждение (973, 0)
V / MediaPlayer: приложение обратного вызова
V / MediaPlayer: возврат из обратного вызова
V / MediaPlayer: получено сообщение msg = 5, ext1 = 0, ext2 = 0
V / MediaPlayer: новый размер видео 0 x 0
V / MediaPlayer: приложение обратного вызова
V / MediaPlayer: возврат из обратного вызова
V / MediaPlayer: получено сообщение msg = 1, ext1 = 0, ext2 = 0
V / MediaPlayer: подготовлен
V / MediaPlayer: поток приложения signal
V / MediaPlayer: приложение обратного вызова
V / MediaPlayer: возврат из обратного вызова
V / MediaPlayer: подготовка завершена — статус = 0
I / MediaPlayer: не отправлять intent. msg.arg1 = 0, msg.arg2 = 0
E / MediaPlayer: должен быть установлен контроллер субтитров
V / MediaPlayer-JNI: начать
V / MediaPlayer: запуск
V / MediaPlayer: получено сообщение msg = 300, ext1 = 0, ext2 = 0
V / MediaPlayer: получено SEC_MM_PLAYER_CONTEXT_AWARE
V / MediaPlayer: приложение обратного вызова
V / MediaPlayer: возврат из обратного вызова
V / MediaPlayer: получено сообщение msg = 6, ext1 = 0, ext2 = 0
V / MediaPlayer: получен MEDIA_STARTED
V / MediaPlayer: приложение обратного вызова
V / MediaPlayer: возврат из обратного вызова
I / MediaPlayer: отправка контекстно-зависимого события
I / MediaPlayer: sendBroadcast CONTEXT_AWARE_MUSIC_INFO — type(start) — id (1183)
V/ MediaPlayer-JNI: native_finalize
V / MediaPlayer-JNI: релиз
V / MediaPlayer: isPlaying: 1
V / MediaPlayer-JNI: isPlaying: 1
I / MediaPlayer: отправка broadcast CONTEXT_AWARE_MUSIC_INFO — тип (остановка) — идентификатор (1183)
V / MediaPlayer-JNI: остановить
V / MediaPlayer: остановка
Комментарии:
1. Попробуйте подготовить проигрыватель и файл перед его запуском
2. @tainguyen Почему бы вам не инициализировать mediaplayer перед нажатием кнопки. И запуск только при нажатии кнопки.
3. В качестве альтернативы SoundPool можно использовать для быстрого воспроизведения очень коротких звуковых файлов, таких как звуковые эффекты игр и т. Д.
4. @AhmadSattout пытался это сделать, но это не сработало
5. запускайте медиаплеер при запуске действия, а не при создании. попробуйте запустить медиаплеер с помощью OnStart () или onResume ().