Русские Блоги
Ошибка Android Mediaplayer (1, -2147483648) Ошибка (-38,0) решение (загрузка сети и локальная загрузка)
Ошибка Android Mediaplayer (1, -2147483648) Ошибка (-38,0) решение (загрузка сети и локальная загрузка)
05.07.2016 09:05:08 Номер чтения: 12640 Теги:androidmediaplayerрешение Больше
Заявление об авторских правах: эта статья является оригинальной статьей блоггера и не может быть воспроизведена без разрешения блогера. https://blog.csdn.net/wning1/article/details/51828641
Использование SurfaceView или mediaplayer + surface в проекте для воспроизведения видео по сети или локально, часто возникают ошибки (1, -2147483648) Ошибка (-38,0), значение ошибки (1, — 2147483648), 1 представляет MediaPlayer.MEDIA_ERROR_UNKNOWN , -2147483648 определяется как UNKNOWNOWNOWN_ERRROR_INKNOWN /native/include/utils/Errors.h. Как правило, ошибка (-38,0) вызвана ошибкой (1, -2147483648). Когда медиаплеер является недопустимым объектом, в это время, когда медиаплеер вызывает getDuration () и другие методы, возникает ошибка Error (-38, 0). Ниже приводится информация об ошибке, с которой я столкнулся в то время:
public static MediaPlayer create(Context context, int resid,
AudioAttributes audioAttributes, int audioSessionId) <
AssetFileDescriptor afd = context.getResources().openRawResourceFd(resid);
if (afd == null) return null;
MediaPlayer mp = new MediaPlayer();
final AudioAttributes aa = audioAttributes != null ? audioAttributes :
mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
> catch (IOException ex) <
Log.d(TAG, «create failed:», ex);
> catch (IllegalArgumentException ex) <
Log.d(TAG, «create failed:», ex);
> catch (SecurityException ex) <
Log.d(TAG, «create failed:», ex);
Метод create () фактически включает создание объектов, установку ресурсов и операции prepare ().
1.2 Если вы используете конструктор MediaPlayer для инициализации MediaPlayer, а затем устанавливаете источник данных с помощью метода setDataSource, вам необходимо использовать метод MediaPlayer.prepare () для однократной компиляции источника данных перед start (). Можно избежать (-38,0) такой ошибки.
1.3. Учитывая проблему кодирования, формат кодирования, поддерживаемый собственным медиаплеером Android при воспроизведении видео, очень ограничен. Поддерживаются следующие форматы:
Если ваш формат видео не относится к одному из этих, будет выдано сообщение об ошибке (1, -2147483648). Для этого вида ошибки вам необходимо рассмотреть возможность преобразования видео в поддерживаемый формат в настоящее время. Здесь я просто вставил формат кодирования видео, если вы хотите просмотреть кодировку звука, проверьтеhttps://developer.android.com/guide/appendix/media-formats.html. (Ps: Я использую фабрику форматов для просмотра подробной информации)
1.4. При выходе из действия вы должны сначала освободить объект Mediaplayer, а затем закрыть действие. Необходимо выполнить следующий код:
Если вы закроете активность, не выпуская сначала медиаплеер, медиаплеер не будет выпущен. В это время, если вы повторно создадите mMediaplayer, также появится (1, -2147483648). В этом случае вы должны сначала освободить медиаплеер. — это ошибка, которую я обнаружил в проекте.Поначалу я подумал, что это ошибка кодирования формата видео, поэтому внимательно изучил формат кодирования видео, но обнаружил, что проблем нет. Наконец, мы исключили множество ситуаций и обнаружили, что я не выпускал медиаплеер до закрытия активности.
2. Если видео загружается локально:
В дополнение к рассмотрению вышеупомянутых четырех ситуаций, вам также необходимо учитывать разрешения для видео. В конце концов, вы загружаете видео локально. Возможно, у вас нет разрешений на чтение и запись для определенного каталога.
ps: «chmod 777» может понадобиться для исправления разрешений.
Вышесказанное является моим текущим пониманием медиаплеера, я надеюсь помочь вам!
E/MediaPlayerNative( 6767): error (1, -2147483648) #531
Comments
pacifio commented May 8, 2020
Error
I even added usesCleartextTraffic in android manifest file
The text was updated successfully, but these errors were encountered:
johnkorn commented Jun 9, 2020 •
Hi!
I have the same error but when running
Have no idea what the problem is
Dan7s commented Jun 16, 2020
Hello,
I had exactly same issue, but flutter pub upgrade solve the problem.
I was running version 1.13.5 of audioplayers.
johnkorn commented Jun 18, 2020
yes, same worked for me, thanks
ElZombieIsra commented Jun 24, 2020
I was having the same issue and none of the proposed solutions worked for me.
Turns out the URL I was using was making some sort of redirection to the source so when the service tried to reach the source from the first URL all it got was an html with the redirection rule so thats what generated the issue for me.
Try and see if the URL you are using is returning the audio file immediately or not
searchy2 commented Jul 15, 2020
@ElZombieIsra is correct. If the URL provided is not a direct audio file, then this error occurs.
This likely isn’t a library error.
oSamDavis commented Oct 30, 2020 •
Currently having the same issue. pub upgrade not working for me
braniii commented Nov 5, 2020
Currently having the same issue. pub upgrade not working for me
I am using AudioCache to play every 10-60s a short sound, in .ogg format, of a few hundred milliseconds. It all works fine, but after a few minutes I always get the same error.
I am on Android 9 together with the newest release 0.16.2
braniii commented Nov 10, 2020
Using an fixed AudioPlayer instance seems to fix the problem for me. This works only, if the sounds do not overlap.
wael-fadlallah commented Nov 20, 2020
@braniii
am facing the same problem 🙁
can you share with me how you create a fixed Audio player instance ?
claudehsu commented Dec 9, 2020
I got the similar issue and creating the AudioCache instance with fixedPlayer named parameter resolved my issue.
wael-fadlallah commented Dec 9, 2020
Hey @claudehsu thanks for replaying
I have try your fix but sadly I got some error after playing multiple tracks
Unhandled Exception: PlatformException(Unexpected error!, Unable to access resource, java.lang.RuntimeException: Unable to access resource
and then the player stop playing
mahdidham commented Dec 10, 2020 •
seems like I have same issues here.
Here’s my log when try to play audio from url
*edit, im adding another error that appears in my log
braniii commented Dec 10, 2020
@braniii
am facing the same problem 🙁
can you share with me how you create a fixed Audio player instance ?
Sorry for the late reply. I am using following lines, but I am using only local files. With this snippet I am able to run a Tabata timer with 6-10 500ms sounds per minute for at least 40 minutes without any crash.
mahdidham commented Dec 11, 2020
Just printing error in onPlayerError . I got this unknown error after AudioPlayerState turn to STOP
based from this issue #165 , there something with clearTextTraffic , but i already adding android:usesCleartextTraffic=»true» INTERNET permission, etc, but it not work.
anyway, i am using latest audiopalyers (0.17.0), with android SDK 29
Ошибка медиаплеера Android (1, -2147483648)
у меня есть два разных видео, которые я пытаюсь загрузить в VideoView используя
два видео, пусть они будут видео 1 и видео 2, имеет следующие технические характеристики (взяты с использованием ffmpeg -i ); по сути, это две разные кодировки одного и того же видео:
я знаю, что поддержка AAC пришел с Honeycomb, и поэтому я протестировал видео с несколькими устройствами; результаты приведены ниже:
- SGS II with custom 4.0.3 OS(Sensation ROM 3.4 with CF-Root kernel) — Video 1:OK — Video2:OK
- SGS I with Samsung 2.3.3 OS — Video 1:error (1, -2147483648) — Video 2:OK
- SGS I with custom 4.0.3 OS(ICS SGS TEAM ROM with Devil kernel) — Video 1:error (1, -2147483648) — Video 2:OK
- Nexus One with original 2.3.6 OS — Video 1:See (1) below — Video 2:See (2) below
- Emulator with 2.2 OS — Video 1:error (1, -2147483648) — Video 2:error (1, -2147483648)
- Emulator with 4.0.3 OS — Video 1:error (1, -2147483648) — Video 2:error (1, -2147483648)
оба видео отлично воспроизводятся в Google Chrome на ПК. Может быть полезно добавить, что в случае OK видео и аудио воспроизводятся правильно. В случае ошибки (1, -2147483648) тот же журнал извергается со всех устройств (кроме Nexus One):
в случае (1) следующий журнал извергается из Nexus One, и видео никогда не загружается:
в случае (2) следующий журнал извергается из Nexus One и, как вы можете видеть, заканчивается ошибкой (1, -2147483648):
из того, что я прочитал, Ошибка (1, -2147483648) может соответствовать неподдерживаемым кодекам, поврежденным метаданным или неправильным заголовкам файлов. Если это так, не могли бы вы указать меня в правильном направлении как использовать, какой кодек? Спасибо.
Ошибка Android MediaPlayer (1, -2147483648)
У меня есть два разных видео, которые я пытаюсь загрузить в VideoView через
Два видео, пусть будут Видео 1 и Видео 2, имеют следующие характеристики (извлеченные с использованием ffmpeg -i ); на самом деле это две разные кодировки одного и того же видео:
Я знаю, что поддержка AAC пришла с Honeycomb, поэтому я тестировал видео на нескольких устройствах; результаты приведены ниже:
- SGS II with custom 4.0.3 OS(Sensation ROM 3.4 with CF-Root kernel) — Video 1:OK — Video2:OK
- SGS I with Samsung 2.3.3 OS — Video 1:error (1, -2147483648) — Video 2:OK
- SGS I with custom 4.0.3 OS(ICS SGS TEAM ROM with Devil kernel) — Video 1:error (1, -2147483648) — Video 2:OK
- Nexus One with original 2.3.6 OS — Video 1:See (1) below — Video 2:See (2) below
- Emulator with 2.2 OS — Video 1:error (1, -2147483648) — Video 2:error (1, -2147483648)
- Emulator with 4.0.3 OS — Video 1:error (1, -2147483648) — Video 2:error (1, -2147483648)
Оба видео нормально воспроизводятся в Google Chrome на ПК. Возможно, было бы полезно добавить, что в случае OK видео и аудио воспроизводятся правильно. В случае с ошибкой (1, -2147483648) один и тот же журнал извергается со всех устройств (кроме Nexus One):
В случае (1) следующий журнал извергается из Nexus One, и видео никогда не загружается:
В случае (2) следующий журнал извергается из Nexus One и, как вы можете видеть, заканчивается ошибкой (1, -2147483648):
Из того, что я прочитал, ошибка (1, -2147483648) может соответствовать неподдерживаемым кодекам, поврежденным метаданным или неправильным заголовкам файлов. Если это так, не могли бы вы указать мне правильное направление, какой кодек использовать? Спасибо.
Ошибка Android MediaPlayer (1, -2147483648)
У меня есть два разных видео, которые я пытаюсь загрузить в VideoView через
Два видео, пусть будут Видео 1 и Видео 2, имеют следующие характеристики (извлеченные с использованием ffmpeg -i ); на самом деле это две разные кодировки одного и того же видео:
Я знаю, что поддержка AAC пришла с Honeycomb, поэтому я тестировал видео на нескольких устройствах; результаты приведены ниже:
- SGS II with custom 4.0.3 OS(Sensation ROM 3.4 with CF-Root kernel) — Video 1:OK — Video2:OK
- SGS I with Samsung 2.3.3 OS — Video 1:error (1, -2147483648) — Video 2:OK
- SGS I with custom 4.0.3 OS(ICS SGS TEAM ROM with Devil kernel) — Video 1:error (1, -2147483648) — Video 2:OK
- Nexus One with original 2.3.6 OS — Video 1:See (1) below — Video 2:See (2) below
- Emulator with 2.2 OS — Video 1:error (1, -2147483648) — Video 2:error (1, -2147483648)
- Emulator with 4.0.3 OS — Video 1:error (1, -2147483648) — Video 2:error (1, -2147483648)
Оба видео нормально воспроизводятся в Google Chrome на ПК. Возможно, было бы полезно добавить, что в случае OK видео и аудио воспроизводятся правильно. В случае с ошибкой (1, -2147483648) один и тот же журнал извергается со всех устройств (кроме Nexus One):
В случае (1) следующий журнал извергается из Nexus One, и видео никогда не загружается:
В случае (2) следующий журнал извергается из Nexus One и, как вы можете видеть, заканчивается ошибкой (1, -2147483648):
Из того, что я прочитал, ошибка (1, -2147483648) может соответствовать неподдерживаемым кодекам, поврежденным метаданным или неправильным заголовкам файлов. Если это так, не могли бы вы указать мне правильное направление, какой кодек использовать? Спасибо.