Mediaplayernative error 1 2147483648

Русские Блоги Ошибка 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 […]

Содержание

  1. Русские Блоги
  2. Ошибка Android Mediaplayer (1, -2147483648) Ошибка (-38,0) решение (загрузка сети и локальная загрузка)
  3. Ошибка Android Mediaplayer (1, -2147483648) Ошибка (-38,0) решение (загрузка сети и локальная загрузка)
  4. E/MediaPlayerNative( 6767): error (1, -2147483648) #531
  5. Comments
  6. Воспроизвести URL-адрес аудио с помощью xamarin MediaPlayer
  7. Пример ExoPlayer:
  8. Ошибка Android MediaPlayer (1, -2147483648)
  9. MediaPlayerNative: error (1, -2147483648) при воспроизведении HTTP прогрессивного MP3 потока
  10. 4 ответа
  11. Похожие вопросы:

Русские Блоги

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» может понадобиться для исправления разрешений.

Вышесказанное является моим текущим пониманием медиаплеера, я надеюсь помочь вам!

Источник

I even added usesCleartextTraffic in android manifest file

The text was updated successfully, but these errors were encountered:

Hi!
I have the same error but when running

Have no idea what the problem is

Hello,
I had exactly same issue, but flutter pub upgrade solve the problem.
I was running version 1.13.5 of audioplayers.

yes, same worked for me, thanks

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

@ElZombieIsra is correct. If the URL provided is not a direct audio file, then this error occurs.
This likely isn’t a library error.

Currently having the same issue. pub upgrade not working for me

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

Using an fixed AudioPlayer instance seems to fix the problem for me. This works only, if the sounds do not overlap.

@braniii
am facing the same problem 🙁
can you share with me how you create a fixed Audio player instance ?

I got the similar issue and creating the AudioCache instance with fixedPlayer named parameter resolved my issue.

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

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

Источник

Воспроизвести URL-адрес аудио с помощью xamarin MediaPlayer

Почему xamarin MediaPlayer (на Xamarin.Android) может воспроизводить звук в виде потока по такой ссылке (mediaUrl1): https://ia800806.us.archive.org/15/items/Mp3Playlist_555/AaronNeville-CrazyLove.mp3

Есть ли способ воспроизвести приведенную выше ссылку (mediaUrl2) без (конечно) предварительной загрузки файла?

Вот полный источник образца, который я использую. Любая помощь будет оценена по достоинству.

Это поток HTTP mpga , который напрямую не поддерживается ни одним из известных мне API Android и, следовательно, не поддерживается MediaPlayer (см. Поддержка мультимедийных форматов Android для дальнейшего чтения).

Вы можете просмотреть вывод logcat вашего кода MediaPlayer , и вы увидите такой вывод:

Android ExoPlayer от Google может правильно транслировать этот формат мультимедиа.

Это пример действительно просто и очень грубо ExoPlayer, но он покажет вам, что он действительно воспроизводит этот поток:

Пример ExoPlayer:

Примечание: exoPlayer — это переменная уровня класса типа SimpleExoPlayer .

Источник

У меня есть два разных видео, которые я пытаюсь загрузить в 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) может соответствовать неподдерживаемым кодекам, поврежденным метаданным или неправильным заголовкам файлов. Если это так, не могли бы вы указать мне в правильном направлении, чтобы использовать какой кодек? Благодарю.

Источник

Я уже столько всего пытаюсь разработать интернет приложение по стримингу радио, но все что я получаю это какую то силу вылазит или ошибки. Шаги которые я предпринял,

  • Я пока что прочитал документацию по MediaPlayer тут.
  • Я так же прочитал уже имеющиеся решения тут.
  • Я так же поискал в гугле любые решения но ни одного не нашел.

Когда я запускаю этот код то MediaPlayer не получаеться подготовить. И он выкидывает следующие ошибки: Клик здесь для полного лога Основные ошибки это:

Я уже почти три дня имею дело с этой проблемой но все еще не нашел решения. Так же могу заверить что ссылка аудио потока работает отлично.

Любая помощь была бы очень благодарна!

4 ответа

Я получаю error во время проигрывания видео из asset folder и raw folder. MediaPlayer error (1, -2147483648) VideoView error 1, -2147483648. Я пробовал из asset folder as. private String SrcPath = file:///android_asset/aaa.mp4; //also tried aaaa.mp3 VideoView vv =.

У меня есть два разных видео которые я пытаюсь подгрузить в a VideoView с помощью videoView.setVideoURI(Uri.parse(url)); Два видео, пусть будут video 1 и video 2 , имеют следующие spec’ы (извлекаемые с помощью ffmpeg -i ); по сути они являются двумя разными кодировками одного и того же видео.

Используйте вот так.

Declare:

Initialize (onCreate):

При вызове:

Причина в том, что MediaPlayer не поддерживает потоковый формат MPEGA. Взгляните в supported audio formats.

Просто используйте один из сторонних плееров, которые совместимы с, вроде IjkPlayer или ExoPlayer

У меня такая же ошибка получалась только тогда когда вызывался onPause -> onResume. Он был вызван методом setOnPreparedListener. Решение:

Явно на prepared listener поэтому он и не использует старый объект mediaPlayer

У меня была такая же ошибка, но она была только на нескольких телефонах и я понятия не имел как это исправить. У меня закончилось с помощью ExoPlayer

Похожие вопросы:

Я пытаюсь построить приложение dictionary. И dictionary api предоставить мне url для mp3 файла. Я использую этот код для проигрывания mp3 . Это работает во всех версиях андроида кроме API 28. Что.

String url = http://23.101.29.94:1111/text1.mp3; MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); try < mediaPlayer.setDataSource(url); >catch.

Я получаю error во время проигрывания видео из asset folder и raw folder. MediaPlayer error (1, -2147483648) VideoView error 1, -2147483648. Я пробовал из asset folder as. private String SrcPath =.

У меня есть два разных видео которые я пытаюсь подгрузить в a VideoView с помощью videoView.setVideoURI(Uri.parse(url)); Два видео, пусть будут video 1 и video 2 , имеют следующие spec’ы.

Получаю вот такую ошибку при воспроизведении потокового аудио в Android: MediaPlayer(658): error (1, -2147483648) mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);.

У меня уже не один год идет противоречивый опыт с установкой видео VideoView’s из файлового пути. VideoView myVideoView = findViewById(R.id.videoView); . myVideoView.setVideoPath(videoFilename);.

Отсутствует сообщение об ошибке при воспроизведении звука. Ставлю для тестирования print statement, и по url получаю правильный путь. Кнопку play нажимаю, и иногда слышу слабый клик, но все.

Я хочу получить Метаданные из мп3 HTTP потока. Поток воспроизводится с AVPlayer. Я это пока что пробовал с AVPlayerItemMetadataCollector но он возвращает nil. Альтернатива — получить конкретную.

Источник

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.

Already on GitHub?
Sign in
to your account


Closed

pacifio opened this issue

May 8, 2020

· 27 comments

Comments

@pacifio

Code

_player.play("https://file-examples.com/wp-content/uploads/2017/11/file_example_MP3_700KB.mp3");

Error

V/MediaHTTPService( 6767): MediaHTTPService(android.media.MediaHTTPService@d3e2288): Cookies: null
V/MediaHTTPService( 6767): makeHTTPConnection: CookieHandler (java.net.CookieManager@976f522) exists.
V/MediaHTTPService( 6767): makeHTTPConnection(android.media.MediaHTTPService@d3e2288): cookieHandler: java.net.CookieManager@976f522 Cookies: null
E/MediaPlayerNative( 6767): error (1, -2147483648)
E/MediaPlayer( 6767): Error (1,-2147483648)
E/MediaPlayerNative( 6767): stop called in state 0, mPlayer(0xcc47d040)
E/MediaPlayerNative( 6767): error (-38, 0)
V/MediaPlayer( 6767): resetDrmState:  mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
V/MediaPlayer( 6767): cleanDrmObj: mDrmObj=null mDrmSessionId=null
V/MediaPlayer( 6767): resetDrmState:  mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
V/MediaPlayer( 6767): cleanDrmObj: mDrmObj=null mDrmSessionId=null

I even added usesCleartextTraffic in android manifest file

@johnkorn

Hi!
I have the same error but when running

final player = AudioCache();
player.play("note7.wav");

Have no idea what the problem is

@Dan7s

Hello,
I had exactly same issue, but flutter pub upgrade solve the problem.
I was running version 1.13.5 of audioplayers.

@johnkorn

yes, same worked for me, thanks

@ElZombieIsra

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

@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

Currently having the same issue. pub upgrade not working for me
Screenshot (339)

@braniii

Currently having the same issue. pub upgrade not working for me
Screenshot (339)

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

E/MediaPlayerNative(25640): error (1, -19)
E/MediaPlayer(25640): Error (1,-19)
E/MediaPlayerNative(25640): pause called in state 0, mPlayer(0x7101adfe3ec0)
E/MediaPlayerNative(25640): error (-38, 0)
E/MediaPlayerNative(25640): Attempt to perform seekTo in wrong state: mPlayer=0x7101adfe3ec0, mCurrentState=0
E/MediaPlayerNative(25640): error (-38, 0)
E/MediaPlayer(25640): Error (-38,0)
E/MediaPlayer(25640): Error (-38,0)
...

@braniii

Using an fixed AudioPlayer instance seems to fix the problem for me. This works only, if the sounds do not overlap.

@wael-fadlallah

@braniii
am facing the same problem :(
can you share with me how you create a fixed Audio player instance ?

@claudehsu

Hi @wael-fadlallah

I got the similar issue and creating the AudioCache instance with fixedPlayer named parameter resolved my issue.

AudioPlayer fixedPlayer = new AudioPlayer();
AudioCache player = AudioCache(fixedPlayer: fixedPlayer);

@wael-fadlallah

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

seems like I have same issues here.
Here’s my log when try to play audio from url

...
W/System: ClassLoader referenced unknown path: system/framework/mediatek-cta.jar
I/System.out: [okhttp] e:java.lang.ClassNotFoundException: com.mediatek.cta.CtaUtils
I/System.out: [okhttp]:check permission begin!
W/System: ClassLoader referenced unknown path: system/framework/mediatek-cta.jar
[okhttp] e:java.lang.ClassNotFoundException: com.mediatek.cta.CtaUtils
I/System.out: [okhttp]:check permission begin!
W/System: ClassLoader referenced unknown path: system/framework/mediatek-cta.jar
I/System.out: [okhttp] e:java.lang.ClassNotFoundException: com.mediatek.cta.CtaUtils
E/MediaPlayerNative: error (1, -2147483648)
E/MediaPlayer: Error (1,-2147483648)

*edit, im adding another error that appears in my log

28308-28373 E/MediaPlayerNative: error (1, -2147483648)
28308-28308 E/MediaPlayer: Error (1,-2147483648)
28308-28308 E/MediaPlayerNative: stop called in state 0, mPlayer(0x895ee740)
28308-28308 E/MediaPlayerNative: error (-38, 0)

@braniii

@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.

AudioPlayer audioPlayerInstance = AudioPlayer()..setReleaseMode(ReleaseMode.STOP);
AudioCache audioCache = AudioCache(fixedPlayer: audioPlayerInstance);
await audioCache.loadAll(<String>[...]);  // list with audio files

@mahdidham

Just printing error in onPlayerError. I got this unknown error after AudioPlayerState turn to STOP

18413-18547 I/flutter: audioplayer error: MediaPlayer error with what:MEDIA_ERROR_UNKNOWN {what:1} extra:MEDIA_ERROR_SYSTEM
18413-18547 I/flutter: _platformCallHandler call audio.onComplete {value: true, playerId: ef0254f5-dde6-430c-bf30-a97f679ab2d7}

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

@minikupa

@itssidhere

@mahdidham

ah, I almost forgot about this issue. So after deeply search, there is no issue for the code imo. In my case, the problem is from the API itself. After I check the headers of the API, the Content-Type is set to text/html, not audio/xwav.
just try another open source audio url like this to check whether the function is work or not.

@minikupa

I use the music in the assets folder, but the same error occurs. Same for other libraries

@ElZombieIsra

Hey, everyone. I found myself encountering this error again today. The solution was the same I said before, the URL that I was using returned a redirect rule instead of the actual file.

Double-check if your URL is returning the actual file.

@mahdidham

Consider to add human-readable error for this issue

@nicolo-fr

Same issue here !
I try to play music in my assets folder. It works perfectly fine on the iPhone emulator, but I get this error when I try it on Android.
Has anyone found a solution ?
Thanks in advance for your help

E/MediaPlayerNative( 8001): error (1, -2147483648)
E/MediaPlayer( 8001): Error (1,-2147483648)
E/MediaPlayerNative( 8001): pause called in state 0, mPlayer(0xaf81bf70)
E/MediaPlayerNative( 8001): error (-38, 0)
E/MediaPlayerNative( 8001): Attempt to perform seekTo in wrong state: mPlayer=0xaf81bf70, mCurrentState=0
E/MediaPlayerNative( 8001): error (-38, 0)

@luanpotter

@ElZombieIsra that is definitely the original issue, just by opening it on the browser you can see the real URL is:

https://file-examples-com.github.io/uploads/2017/11/file_example_MP3_700KB.mp3

I should add this to the FAQ, seems to be a very common issue.

@erickzanardo

@luanpotter did you added the FAQ entry so we can close this?

@luanpotter

@pideltajah

I was getting the exact same error. My problem was I forgot to put the scheme in the audio URL. 🤦‍♂️
I tacked http:// to the front of it and solved the problem!

@Nurtaz440

2021-09-15 10:19:30.001 32611-32611/mening.dasturim.recyclerview E/im.recyclervie: Invalid ID 0x00000000.
2021-09-15 10:19:31.872 32611-2053/mening.dasturim.recyclerview E/MediaPlayerNative: error (1, -1015)
2021-09-15 10:19:31.875 32611-32611/mening.dasturim.recyclerview E/MediaPlayer: Error (1,-1015)

@Ankit098126

Hi! I have the same error but when running

final player = AudioCache();
player.play("note7.wav");

Have no idea what the problem is

anyone can find solution for this plz tell me and i try ti find from last 1 week and not able to find any solution for this

Ошибка Android Mediaplayer (1, -2147483648) Ошибка (-38,0) решение (загрузка сети и локальная загрузка)

05.07.2016 09:05:08 Номер чтения: 12640 Теги:androidmediaplayerрешение Больше

Индивидуальный зачет:android

Заявление об авторских правах: эта статья является оригинальной статьей блоггера и не может быть воспроизведена без разрешения блогера. https://blog.csdn.net/wning1/article/details/51828641

 
  1. </pre> Использование SurfaceView или mediaplayer + surface в проекте для воспроизведения видео по сети или локально, часто возникают ошибки (1, -2147483648) Ошибка (-38,0), значение ошибки (1, - 2147483648), 1 представляет <a target = _blank target = "_ blank" href = "https://developer.android.com/reference/android/media/MediaPlayer.html#MEDIA_ERROR_UNKNOWN"> MediaPlayer.MEDIA_ERROR_UNKNOWN </a>, -2147483648 определяется как UNKNOWNOWNOWN_ERRROR_INKNOWN /native/include/utils/Errors.h. Как правило, ошибка (-38,0) вызвана ошибкой (1, -2147483648). Когда медиаплеер является недопустимым объектом, в это время, когда медиаплеер вызывает getDuration () и другие методы, возникает ошибка Error (-38, 0). Ниже приводится информация об ошибке, с которой я столкнулся в то время: <p></p><p> </p> <pre name = "code" class = "java"> 07-03 08: 08: 18.421 12853-13275 / com .suomistudent E / MediaPlayer ﹕ ошибка (1, -2147483648)

  2. 07-03 08:08:18.451 12853-12853/com.suomistudent E/MediaPlayer﹕ Attempt to call getDuration without a valid mediaplayer

  3. 07-03 08:08:18.451 12853-12853/com.suomistudent E/MediaPlayer﹕ error (-38, 0)

  4. 07-03 08:08:18.461 12853-12853/com.suomistudent E/MediaPlayer﹕ Error (1,-2147483648)

Итак, как решить эту проблему:

1. Ошибка (1, -2147483648) возникает во время загрузки сети, т. Е. Не удалось инициализировать медиаплеер. В этом случае обычно следует учитывать следующие моменты:

Во-первых, вам нужно убедиться, что путь к файлу, например каталог, или URL-адрес и URI верны.

1.1 При инициализации MediaPlayer установите источник данных с помощью метода create. Вы не можете написать метод MediaPlayer.prepare (), он сообщит об ошибке. Просмотрите исходный код Mediaplayer.create () следующим образом:

 
  1. public static MediaPlayer create(Context context, int resid,

  2. AudioAttributes audioAttributes, int audioSessionId) {

  3. try {

  4. AssetFileDescriptor afd = context.getResources().openRawResourceFd(resid);

  5. if (afd == null) return null;

  6.  
  7. MediaPlayer mp = new MediaPlayer();

  8.  
  9. final AudioAttributes aa = audioAttributes != null ? audioAttributes :

  10. new AudioAttributes.Builder().build();

  11. mp.setAudioAttributes(aa);

  12. mp.setAudioSessionId(audioSessionId);

  13.  
  14. mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());

  15. afd.close();

  16. mp.prepare();

  17. return mp;

  18. } catch (IOException ex) {

  19. Log.d(TAG, "create failed:", ex);

  20. // fall through

  21. } catch (IllegalArgumentException ex) {

  22. Log.d(TAG, "create failed:", ex);

  23. // fall through

  24. } catch (SecurityException ex) {

  25. Log.d(TAG, "create failed:", ex);

  26. // fall through

  27. }

  28. return null;

  29. }

Метод 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, а затем закрыть действие. Необходимо выполнить следующий код:

 
  1. mMediaPlayer.reset();

  2. mMediaPlayer.release();

  3. mMediaPlayer = null;

Если вы закроете активность, не выпуская сначала медиаплеер, медиаплеер не будет выпущен. В это время, если вы повторно создадите mMediaplayer, также появится (1, -2147483648). В этом случае вы должны сначала освободить медиаплеер. — это ошибка, которую я обнаружил в проекте.Поначалу я подумал, что это ошибка кодирования формата видео, поэтому внимательно изучил формат кодирования видео, но обнаружил, что проблем нет. Наконец, мы исключили множество ситуаций и обнаружили, что я не выпускал медиаплеер до закрытия активности.

2. Если видео загружается локально:

В дополнение к рассмотрению вышеупомянутых четырех ситуаций, вам также необходимо учитывать разрешения для видео. В конце концов, вы загружаете видео локально. Возможно, у вас нет разрешений на чтение и запись для определенного каталога.

ps: «chmod 777» может понадобиться для исправления разрешений.

Вышесказанное является моим текущим пониманием медиаплеера, я надеюсь помочь вам!

у меня есть два разных видео, которые я пытаюсь загрузить в VideoView используя

videoView.setVideoURI(Uri.parse(url));

два видео, пусть они будут видео 1 и видео 2, имеет следующие технические характеристики (взяты с использованием ffmpeg -i); по сути, это две разные кодировки одного и того же видео:

  1. Видео 1:

    Seems stream 0 codec frame rate differs from container frame rate: 180000.00 (180000/1) -> 90000.00 (180000/2)
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '4fbfd5ece4b0932236fc234d.mp4':
    Metadata:
    major_brand : mp42
    minor_version : 0
    compatible_brands: mp42isomavc1
    creation_time : 2011-12-03 04:43:46
    genre : Trailer
    artist : Paramount Pictures
    title : Captain America: The First Avenger - Theatrical Trailer #2
    encoder : HandBrake 4344svn 2011111001
    date : 2011
    Duration: 00:02:30.67, start: 0.000000, bitrate: 6738 kb/s
    Stream #0.0(und): Video: h264 (High), yuv420p, 1920x800 [PAR 1:1 DAR 12:5], 6575 kb/s, 23.97 fps, 90k tbr, 90k tbn, 180k tbc
    Metadata:
    creation_time : 2011-12-03 04:43:46
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16, 159 kb/s
    Metadata:
    creation_time : 2011-12-03 04:43:46

  2. видео 2:

    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '500416ea44aeb4b95d5ae8a0_hd.mp4':
    Metadata:
    major_brand : isom
    minor_version : 512
    compatible_brands: isomiso2avc1mp41
    creation_time : 2011-12-03 04:43:46
    title : Captain America: The First Avenger - Theatrical Trailer #2
    artist : Paramount Pictures
    date : 2011
    encoder : Lavf53.32.100
    genre : Trailer
    Duration: 00:02:30.69, start: 0.000000, bitrate: 2045 kb/s
    Stream #0.0(und): Video: h264 (High), yuv420p, 1280x720 [PAR 27:20 DAR 12:5], 1889 kb/s, 23.99 fps, 90k tbr, 180k tbn, 180k tbc
    Metadata:
    creation_time : 2011-12-03 04:43:46
    Stream #0.1(eng): Audio: aac, 44100 Hz, stereo, s16, 151 kb/s
    Metadata:
    creation_time : 2011-12-03 04:43:46

я знаю, что поддержка AAC пришел с Honeycomb, и поэтому я протестировал видео с несколькими устройствами; результаты приведены ниже:

  1. SGS II with custom 4.0.3 OS(Sensation ROM 3.4 with CF-Root kernel) - Video 1:OK - Video2:OK
  2. SGS I with Samsung 2.3.3 OS - Video 1:error (1, -2147483648) - Video 2:OK
  3. SGS I with custom 4.0.3 OS(ICS SGS TEAM ROM with Devil kernel) - Video 1:error (1, -2147483648) - Video 2:OK
  4. Nexus One with original 2.3.6 OS - Video 1:See (1) below - Video 2:See (2) below
  5. Emulator with 2.2 OS - Video 1:error (1, -2147483648) - Video 2:error (1, -2147483648)
  6. Emulator with 4.0.3 OS - Video 1:error (1, -2147483648) - Video 2:error (1, -2147483648)

оба видео отлично воспроизводятся в Google Chrome на ПК. Может быть полезно добавить, что в случае OK видео и аудио воспроизводятся правильно. В случае ошибки (1, -2147483648) тот же журнал извергается со всех устройств (кроме Nexus One):

07-18 10:25:10.996: I/MediaPlayer(17860): uri is:http://s3-eu-west-1.amazonaws.com/cf-templates-k6ohn88yswx5-eu-west-1/videos/4fbc88e7e4b0b0896e877764/4fbfd5ece4b0932236fc234d.mp4
07-18 10:25:10.996: I/MediaPlayer(17860): path is null
07-18 10:25:10.996: D/MediaPlayer(17860): Couldn't open file on client side, trying server side
07-18 10:25:39.859: D/MediaPlayer(17860): getMetadata
07-18 10:25:45.070: E/MediaPlayer(17860): error (1, -2147483648)
07-18 10:25:45.074: E/MediaPlayer(17860): Error (1,-2147483648)
07-18 10:25:45.078: D/VideoView(17860): Error: 1,-2147483648

в случае (1) следующий журнал извергается из Nexus One, и видео никогда не загружается:

07-18 13:49:20.115: D/MediaPlayer(10109): Couldn't open file on client side, trying server side
07-18 13:49:20.115: I/StagefrightPlayer(68): setDataSource('http://s3-eu-west-1.amazonaws.com/cf-templates-k6ohn88yswx5-eu-west-1/videos/4fbc88e7e4b0b0896e877764/4fbfd5ece4b0932236fc234d.mp4')
07-18 13:49:20.135: I/NuHTTPDataSource(68): connect to s3-eu-west-1.amazonaws.com:80/cf-templates-k6ohn88yswx5-eu-west-1/videos/4fbc88e7e4b0b0896e877764/4fbfd5ece4b0932236fc234d.mp4 @0
07-18 13:49:20.155: I/ActivityManager(98): Displayed com.woisio/.video.VideoActivity: +450ms
07-18 13:49:20.795: I/NuCachedSource2(68): Keep alive
07-18 13:49:22.185: I/OMXCodec(68): [OMX.qcom.video.decoder.avc] allocating 4 buffers of size 460800 on input port
07-18 13:49:22.195: I/OMXCodec(68): [OMX.qcom.video.decoder.avc] allocating 8 buffers of size 2304000 on output port
07-18 13:49:25.325: D/dalvikvm(9499): GC_EXPLICIT freed 13K, 50% free 2726K/5379K, external 1625K/2137K, paused 116ms
07-18 13:49:27.525: I/NuCachedSource2(68): Keep alive
07-18 13:49:28.235: I/NuCachedSource2(68): Cache full, done prefetching for now
07-18 13:49:30.275: D/dalvikvm(9902): GC_EXPLICIT freed 8K, 50% free 2714K/5379K, external 1625K/2137K, paused 69ms
07-18 13:49:34.255: D/Finsky(9066): [1] 5.onFinished: Installation state replication succeeded.
07-18 13:49:35.855: I/NuCachedSource2(68): Keep alive
07-18 13:49:39.055: D/dalvikvm(9911): GC_EXPLICIT freed 22K, 50% free 2710K/5379K, external 1625K/2137K, paused 38ms
07-18 13:49:42.575: I/NuCachedSource2(68): Keep alive
07-18 13:49:43.285: I/NuCachedSource2(68): Keep alive
07-18 13:49:44.095: D/dalvikvm(9918): GC_EXPLICIT freed 7K, 50% free 2708K/5379K, external 1625K/2137K, paused 66ms
07-18 13:49:49.085: D/dalvikvm(9925): GC_EXPLICIT freed 15K, 49% free 3268K/6407K, external 1625K/2137K, paused 50ms
07-18 13:49:50.925: I/NuCachedSource2(68): Keep alive
07-18 13:49:54.115: D/dalvikvm(6756): GC_EXPLICIT freed 9K, 44% free 3774K/6727K, external 1625K/2137K, paused 77ms
07-18 13:49:57.685: I/NuCachedSource2(68): Keep alive
07-18 13:49:58.375: I/NuCachedSource2(68): Keep alive
07-18 13:49:59.105: D/dalvikvm(9066): GC_EXPLICIT freed 385K, 53% free 3186K/6727K, external 1625K/2137K, paused 66ms
07-18 13:50:05.955: I/NuCachedSource2(68): Keep alive
07-18 13:50:06.045: D/dalvikvm(8047): GC_EXPLICIT freed 9K, 47% free 3830K/7111K, external 1625K/2137K, paused 86ms
07-18 13:50:09.465: I/3gw.Service(488): Mobile Network not connected - not roaming
07-18 13:50:12.765: I/NuCachedSource2(68): Keep alive
07-18 13:50:13.465: I/NuCachedSource2(68): Keep alive
07-18 13:50:18.775: I/WindowManager(98): Setting rotation to 3, animFlags=0
07-18 13:50:18.795: I/ActivityManager(98): Config changed: { scale=1.0 imsi=286/2 loc=en_US touch=3 keys=1/1/2 nav=3/1 orien=2 layout=34 uiMode=17 seq=34}
07-18 13:50:18.895: D/dalvikvm(169): GC_EXTERNAL_ALLOC freed 108K, 48% free 3253K/6215K, external 5172K/5180K, paused 37ms
07-18 13:50:21.005: I/NuCachedSource2(68): Keep alive
07-18 13:50:21.265: D/dalvikvm(98): GC_EXPLICIT freed 394K, 42% free 6631K/11335K, external 4458K/5567K, paused 109ms

в случае (2) следующий журнал извергается из Nexus One и, как вы можете видеть, заканчивается ошибкой (1, -2147483648):

07-18 13:47:03.595: D/MediaPlayer(10059): Couldn't open file on client side, trying server side
07-18 13:47:03.595: I/StagefrightPlayer(68): setDataSource('http://s3-eu-west-1.amazonaws.com/cf-templates-k6ohn88yswx5-eu-west-1/videos/4ff4514444aec3d2f9f07ead/500416ea44aeb4b95d5ae8a0_hd.mp4')
07-18 13:47:03.605: I/NuHTTPDataSource(68): connect to s3-eu-west-1.amazonaws.com:80/cf-templates-k6ohn88yswx5-eu-west-1/videos/4ff4514444aec3d2f9f07ead/500416ea44aeb4b95d5ae8a0_hd.mp4 @0
07-18 13:47:03.625: I/ActivityManager(98): Displayed com.woisio/.video.VideoActivity: +505ms
07-18 13:47:05.355: I/OMXCodec(68): [OMX.qcom.video.decoder.avc] allocating 4 buffers of size 460800 on input port
07-18 13:47:05.355: I/OMXCodec(68): [OMX.qcom.video.decoder.avc] allocating 8 buffers of size 1382400 on output port
07-18 13:47:05.365: I/NuCachedSource2(68): Keep alive
07-18 13:47:08.375: D/MediaPlayer(10059): getMetadata
07-18 13:47:08.745: D/dalvikvm(9925): GC_EXPLICIT freed 651K, 49% free 3275K/6407K, external 1625K/2137K, paused 68ms
07-18 13:47:09.205: I/3gw.Service(488): Mobile Network not connected - not roaming
07-18 13:47:11.565: I/NuCachedSource2(68): Cache full, done prefetching for now
07-18 13:47:12.095: I/NuCachedSource2(68): Keep alive
07-18 13:47:14.245: W/QCvdec(68): H264_Utils::check_header
07-18 13:47:14.245: W/QCvdec(68): check_header: start code 33
07-18 13:47:14.245: W/QCvdec(68): H264_Utils::check_header
07-18 13:47:14.245: W/QCvdec(68): check_header: start code 10
07-18 13:47:14.245: W/QCvdec(68): Parsing Error unsupported profile or level
07-18 13:47:14.245: W/QCvdec(68): ETB in Invalid State
07-18 13:47:14.245: E/OMXCodec(68): [OMX.qcom.video.decoder.avc] ERROR(0x8000100a, 0)
07-18 13:47:14.245: E/MediaPlayer(10059): error (1, -2147483648)
07-18 13:47:14.285: E/MediaPlayer(10059): Error (1,-2147483648)
07-18 13:47:14.285: D/VideoView(10059): Error: 1,-2147483648

из того, что я прочитал, Ошибка (1, -2147483648) может соответствовать неподдерживаемым кодекам, поврежденным метаданным или неправильным заголовкам файлов. Если это так, не могли бы вы указать меня в правильном направлении как использовать, какой кодек? Спасибо.

Issue

I’ve been trying so hard to develop an Internet radio Streaming app, but all I get it some force closes or errors.
Steps I’ve taken,

  • I’ve read the MediaPlayer Documentation here.
  • I’ve also read the already available solutions here.
  • I’ve also searched google for any solutions but found none.

Here is my code:

MainActivity:

    private Button pbutton;
    private MediaPlayer mediaPlayer;

    pbutton = findViewById(R.id.button_play);
    pbutton.setEnabled(false);

    mediaPlayer = new MediaPlayer();
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    try {
        mediaPlayer.setDataSource("http://streams.abidingradio.org:7800/1");
    } catch (IOException e) {
        e.printStackTrace();
    }
    mediaPlayer.prepareAsync();

    mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mp) {
            pbutton.setEnabled(true);
        }
    });

    pbutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mediaPlayer.start();
        }
    });

Manifest:

<?xml version="1.0" encoding="utf-8"?>
<uses-permission android:name="android.permission.INTERNET"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

When I run this code, MediaPlayer is not getting prepared.
And it throws the following errors:
click here for the full log
the main errors are:

failed to init data from source
MediaPlayerNative: error (1, -2147483648)
MediaPlayer: Error (1,-2147483648)

I’ve been dealing with this problem for almost three days but still haven’t found a solution. I can also assure that the link of the audio stream is working perfectly.

Any help would be greatly appreciated!

Thank you.

Solution

The cause is MediaPlayer doesn’t support streaming MPEGA format. Take a look into supported audio formats.

Just use one of third-party players, which are compatible with, like IjkPlayer
or ExoPlayer

Answered By – Onix

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Я так старался разработать приложение для потоковой передачи Интернет-радио, но все, что я получаю, это некоторые принудительные закрытия или ошибки.
Шаги, которые я сделал,

  • Я прочитал документацию MediaPlayer здесь.
  • Еще прочитал уже доступные решения здесь.
  • Я также искал в Google любые решения, но не нашел.

Вот мой код:

Основная деятельность:

    private Button pbutton;
    private MediaPlayer mediaPlayer;

    pbutton = findViewById(R.id.button_play);
    pbutton.setEnabled(false);

    mediaPlayer = new MediaPlayer();
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    try {
        mediaPlayer.setDataSource("http://streams.abidingradio.org:7800/1");
    } catch (IOException e) {
        e.printStackTrace();
    }
    mediaPlayer.prepareAsync();

    mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mp) {
            pbutton.setEnabled(true);
        }
    });

    pbutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mediaPlayer.start();
        }
    });

Манифест:

<?xml version = "1.0" encoding = "utf-8"?>
<uses-permission android:name = "android.permission.INTERNET"/>

<application
    android:allowBackup = "true"
    android:icon = "@mipmap/ic_launcher"
    android:label = "@string/app_name"
    android:roundIcon = "@mipmap/ic_launcher_round"
    android:supportsRtl = "true"
    android:theme = "@style/AppTheme">
    <activity android:name = ".MainActivity">
        <intent-filter>
            <action android:name = "android.intent.action.MAIN" />

            <category android:name = "android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

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

failed to init data from source
MediaPlayerNative: error (1, -2147483648)
MediaPlayer: Error (1,-2147483648)

Я занимаюсь этой проблемой почти три дня, но до сих пор не нашел решения. Также могу заверить, что ссылка аудиопотока работает безупречно.

Любая помощь будет принята с благодарностью!

Спасибо.

Перейти к ответу
Данный вопрос помечен как решенный


Ответы
4

Причина в том, что MediaPlayer не поддерживает потоковый формат MPEGA. Взгляните на поддерживаемые аудиоформаты.

Просто используйте один из сторонних плееров, которые совместимы, например, IjkPlayer
или ExoPlayer

У меня была такая же ошибка, но она была только на нескольких телефонах, и я не знал, как ее исправить. В итоге я использовал ExoPlayer

player?.apply {
        val mediaItem: MediaItem = MediaItem.fromUri(url)
        setMediaItem(mediaItem)
        prepare()
        play()
}

Используйте вот так.

Заявляем:

Uri alarmSound_carHorn;
Ringtone ringtone_carHorn;

Инициализировать (onCreate):

alarmSound_carHorn = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" +  getApplication().getApplicationContext().getPackageName() + "/" +  R.raw.car_horn);
ringtone_carHorn = RingtoneManager.getRingtone(getApplicationContext(),alarmSound_carHorn);

При звонке:

if (ringtone_carHorn!= null && !ringtone_carHorn.isPlaying()){
    ringtone_carHorn.play();
}

Я получил ту же ошибку только при вызове onPause -> onResume.
Это было вызвано setOnPreparedListener.
Решение:

binding?.playbackVideoView?.setOnPreparedListener(null)

Очистить подготовленный слушатель, чтобы он не использовал старый объект mediaPlayer

Другие вопросы по теме

У меня есть два разных видео, которые я пытаюсь загрузить в VideoView через

videoView.setVideoURI(Uri.parse(url));

Два видео, пусть будут Видео 1 и Видео 2, имеют следующие характеристики (извлеченные с использованием ffmpeg -i); на самом деле это две разные кодировки одного и того же видео:

  1. Видео 1:

    Seems stream 0 codec frame rate differs from container frame rate: 180000.00 (180000/1) -> 90000.00 (180000/2)
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '4fbfd5ece4b0932236fc234d.mp4':
      Metadata:
        major_brand     : mp42
        minor_version   : 0
        compatible_brands: mp42isomavc1
        creation_time   : 2011-12-03 04:43:46
        genre           : Trailer
        artist          : Paramount Pictures
        title           : Captain America: The First Avenger - Theatrical Trailer #2
        encoder         : HandBrake 4344svn 2011111001
        date            : 2011
      Duration: 00:02:30.67, start: 0.000000, bitrate: 6738 kb/s
        Stream #0.0(und): Video: h264 (High), yuv420p, 1920x800 [PAR 1:1 DAR 12:5], 6575 kb/s, 23.97 fps, 90k tbr, 90k tbn, 180k tbc
        Metadata:
          creation_time   : 2011-12-03 04:43:46
        Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16, 159 kb/s
        Metadata:
          creation_time   : 2011-12-03 04:43:46
    
  2. Видео 2:

    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '500416ea44aeb4b95d5ae8a0_hd.mp4':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2avc1mp41
        creation_time   : 2011-12-03 04:43:46
        title           : Captain America: The First Avenger - Theatrical Trailer #2
        artist          : Paramount Pictures
        date            : 2011
        encoder         : Lavf53.32.100
        genre           : Trailer
      Duration: 00:02:30.69, start: 0.000000, bitrate: 2045 kb/s
        Stream #0.0(und): Video: h264 (High), yuv420p, 1280x720 [PAR 27:20 DAR 12:5], 1889 kb/s, 23.99 fps, 90k tbr, 180k tbn, 180k tbc
        Metadata:
          creation_time   : 2011-12-03 04:43:46
        Stream #0.1(eng): Audio: aac, 44100 Hz, stereo, s16, 151 kb/s
        Metadata:
          creation_time   : 2011-12-03 04:43:46
    

Я знаю, что поддержка AAC пришла с Honeycomb, поэтому я тестировал видео на нескольких устройствах; результаты приведены ниже:

  1. SGS II with custom 4.0.3 OS(Sensation ROM 3.4 with CF-Root kernel) - Video 1:OK - Video2:OK
  2. SGS I with Samsung 2.3.3 OS - Video 1:error (1, -2147483648) - Video 2:OK
  3. SGS I with custom 4.0.3 OS(ICS SGS TEAM ROM with Devil kernel) - Video 1:error (1, -2147483648) - Video 2:OK
  4. Nexus One with original 2.3.6 OS - Video 1:See (1) below - Video 2:See (2) below
  5. Emulator with 2.2 OS - Video 1:error (1, -2147483648) - Video 2:error (1, -2147483648)
  6. Emulator with 4.0.3 OS - Video 1:error (1, -2147483648) - Video 2:error (1, -2147483648)

Оба видео нормально воспроизводятся в Google Chrome на ПК. Возможно, было бы полезно добавить, что в случае OK видео и аудио воспроизводятся правильно. В случае с ошибкой (1, -2147483648) один и тот же журнал извергается со всех устройств (кроме Nexus One):

07-18 10:25:10.996: I/MediaPlayer(17860): uri is:http://s3-eu-west-1.amazonaws.com/cf-templates-k6ohn88yswx5-eu-west-1/videos/4fbc88e7e4b0b0896e877764/4fbfd5ece4b0932236fc234d.mp4
07-18 10:25:10.996: I/MediaPlayer(17860): path is null
07-18 10:25:10.996: D/MediaPlayer(17860): Couldn't open file on client side, trying server side
07-18 10:25:39.859: D/MediaPlayer(17860): getMetadata
07-18 10:25:45.070: E/MediaPlayer(17860): error (1, -2147483648)
07-18 10:25:45.074: E/MediaPlayer(17860): Error (1,-2147483648)
07-18 10:25:45.078: D/VideoView(17860): Error: 1,-2147483648

В случае (1) следующий журнал извергается из Nexus One, и видео никогда не загружается:

07-18 13:49:20.115: D/MediaPlayer(10109): Couldn't open file on client side, trying server side
07-18 13:49:20.115: I/StagefrightPlayer(68): setDataSource('http://s3-eu-west-1.amazonaws.com/cf-templates-k6ohn88yswx5-eu-west-1/videos/4fbc88e7e4b0b0896e877764/4fbfd5ece4b0932236fc234d.mp4')
07-18 13:49:20.135: I/NuHTTPDataSource(68): connect to s3-eu-west-1.amazonaws.com:80/cf-templates-k6ohn88yswx5-eu-west-1/videos/4fbc88e7e4b0b0896e877764/4fbfd5ece4b0932236fc234d.mp4 @0
07-18 13:49:20.155: I/ActivityManager(98): Displayed com.woisio/.video.VideoActivity: +450ms
07-18 13:49:20.795: I/NuCachedSource2(68): Keep alive
07-18 13:49:22.185: I/OMXCodec(68): [OMX.qcom.video.decoder.avc] allocating 4 buffers of size 460800 on input port
07-18 13:49:22.195: I/OMXCodec(68): [OMX.qcom.video.decoder.avc] allocating 8 buffers of size 2304000 on output port
07-18 13:49:25.325: D/dalvikvm(9499): GC_EXPLICIT freed 13K, 50% free 2726K/5379K, external 1625K/2137K, paused 116ms
07-18 13:49:27.525: I/NuCachedSource2(68): Keep alive
07-18 13:49:28.235: I/NuCachedSource2(68): Cache full, done prefetching for now
07-18 13:49:30.275: D/dalvikvm(9902): GC_EXPLICIT freed 8K, 50% free 2714K/5379K, external 1625K/2137K, paused 69ms
07-18 13:49:34.255: D/Finsky(9066): [1] 5.onFinished: Installation state replication succeeded.
07-18 13:49:35.855: I/NuCachedSource2(68): Keep alive
07-18 13:49:39.055: D/dalvikvm(9911): GC_EXPLICIT freed 22K, 50% free 2710K/5379K, external 1625K/2137K, paused 38ms
07-18 13:49:42.575: I/NuCachedSource2(68): Keep alive
07-18 13:49:43.285: I/NuCachedSource2(68): Keep alive
07-18 13:49:44.095: D/dalvikvm(9918): GC_EXPLICIT freed 7K, 50% free 2708K/5379K, external 1625K/2137K, paused 66ms
07-18 13:49:49.085: D/dalvikvm(9925): GC_EXPLICIT freed 15K, 49% free 3268K/6407K, external 1625K/2137K, paused 50ms
07-18 13:49:50.925: I/NuCachedSource2(68): Keep alive
07-18 13:49:54.115: D/dalvikvm(6756): GC_EXPLICIT freed 9K, 44% free 3774K/6727K, external 1625K/2137K, paused 77ms
07-18 13:49:57.685: I/NuCachedSource2(68): Keep alive
07-18 13:49:58.375: I/NuCachedSource2(68): Keep alive
07-18 13:49:59.105: D/dalvikvm(9066): GC_EXPLICIT freed 385K, 53% free 3186K/6727K, external 1625K/2137K, paused 66ms
07-18 13:50:05.955: I/NuCachedSource2(68): Keep alive
07-18 13:50:06.045: D/dalvikvm(8047): GC_EXPLICIT freed 9K, 47% free 3830K/7111K, external 1625K/2137K, paused 86ms
07-18 13:50:09.465: I/3gw.Service(488): Mobile Network not connected - not roaming
07-18 13:50:12.765: I/NuCachedSource2(68): Keep alive
07-18 13:50:13.465: I/NuCachedSource2(68): Keep alive
07-18 13:50:18.775: I/WindowManager(98): Setting rotation to 3, animFlags=0
07-18 13:50:18.795: I/ActivityManager(98): Config changed: { scale=1.0 imsi=286/2 loc=en_US touch=3 keys=1/1/2 nav=3/1 orien=2 layout=34 uiMode=17 seq=34}
07-18 13:50:18.895: D/dalvikvm(169): GC_EXTERNAL_ALLOC freed 108K, 48% free 3253K/6215K, external 5172K/5180K, paused 37ms
07-18 13:50:21.005: I/NuCachedSource2(68): Keep alive
07-18 13:50:21.265: D/dalvikvm(98): GC_EXPLICIT freed 394K, 42% free 6631K/11335K, external 4458K/5567K, paused 109ms

В случае (2) следующий журнал извергается из Nexus One и, как вы можете видеть, заканчивается ошибкой (1, -2147483648):

07-18 13:47:03.595: D/MediaPlayer(10059): Couldn't open file on client side, trying server side
07-18 13:47:03.595: I/StagefrightPlayer(68): setDataSource('http://s3-eu-west-1.amazonaws.com/cf-templates-k6ohn88yswx5-eu-west-1/videos/4ff4514444aec3d2f9f07ead/500416ea44aeb4b95d5ae8a0_hd.mp4')
07-18 13:47:03.605: I/NuHTTPDataSource(68): connect to s3-eu-west-1.amazonaws.com:80/cf-templates-k6ohn88yswx5-eu-west-1/videos/4ff4514444aec3d2f9f07ead/500416ea44aeb4b95d5ae8a0_hd.mp4 @0
07-18 13:47:03.625: I/ActivityManager(98): Displayed com.woisio/.video.VideoActivity: +505ms
07-18 13:47:05.355: I/OMXCodec(68): [OMX.qcom.video.decoder.avc] allocating 4 buffers of size 460800 on input port
07-18 13:47:05.355: I/OMXCodec(68): [OMX.qcom.video.decoder.avc] allocating 8 buffers of size 1382400 on output port
07-18 13:47:05.365: I/NuCachedSource2(68): Keep alive
07-18 13:47:08.375: D/MediaPlayer(10059): getMetadata
07-18 13:47:08.745: D/dalvikvm(9925): GC_EXPLICIT freed 651K, 49% free 3275K/6407K, external 1625K/2137K, paused 68ms
07-18 13:47:09.205: I/3gw.Service(488): Mobile Network not connected - not roaming
07-18 13:47:11.565: I/NuCachedSource2(68): Cache full, done prefetching for now
07-18 13:47:12.095: I/NuCachedSource2(68): Keep alive
07-18 13:47:14.245: W/QCvdec(68): H264_Utils::check_header 
07-18 13:47:14.245: W/QCvdec(68): check_header: start code 33
07-18 13:47:14.245: W/QCvdec(68): H264_Utils::check_header 
07-18 13:47:14.245: W/QCvdec(68): check_header: start code 10
07-18 13:47:14.245: W/QCvdec(68): Parsing Error unsupported profile or level
07-18 13:47:14.245: W/QCvdec(68): ETB in Invalid State
07-18 13:47:14.245: E/OMXCodec(68): [OMX.qcom.video.decoder.avc] ERROR(0x8000100a, 0)
07-18 13:47:14.245: E/MediaPlayer(10059): error (1, -2147483648)
07-18 13:47:14.285: E/MediaPlayer(10059): Error (1,-2147483648)
07-18 13:47:14.285: D/VideoView(10059): Error: 1,-2147483648

Из того, что я прочитал, ошибка (1, -2147483648) может соответствовать неподдерживаемым кодекам, поврежденным метаданным или неправильным заголовкам файлов. Если это так, не могли бы вы указать мне правильное направление, какой кодек использовать? Спасибо.

Здравствуйте. Есть устройство, которое передает на сервер amr файл, далее это файл проигрывается в приложениях IOS и Android.
Вот характеристика файла:

Кликните здесь для просмотра всего текста

Format: AMR
Format/Info: Adaptive Multi-Rate
Format profile: Narrow band
Duration: 13 s 539 ms
Bit rate mode: Constant
Bit rate: 12.8 kb/s
Channel(s): 1 channel
Sampling rate: 8 000 Hz
Bit depth: 13 bits
Stream size: 21.2 KiB (100%)

В iOS файл проигрывается без проблем, а вот в android не хочет.

мы используем стандартный плеер import android.media.MediaPlayer

Код

try {
                            if (mediaPlayer.isPlaying()) {
                                mediaPlayer.stop();
                            }
                            mediaPlayer.reset();
                            mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
                            mediaPlayer.setDataSource(path);
                            mediaPlayer.setOnPreparedListener(mp -> {
                                status = PLAYER_STATUS_PLAY;
                                mp.start();
                            });
                            mediaPlayer.prepareAsync();
                        }catch (Exception ex){
                            status = PLAYER_STATUS_STOP;
                        }
                        return status;

в итоге получаем ошибку

Код

E/MediaPlayerNative: isPlaying: called in state MEDIA_PLAYER_STATE_ERROR
E/MediaPlayerNative: error (1, -2147483648)
E/MediaPlayer: Error (1,-2147483648)

Первое на что обратили внимание это на битрет файла, он 12.8 kb/s
хотя в характеристиках кодека Narrow band максимум 12.2 kb/s

мануал по Supported media formats тоже нам об этом говорит

Кликните здесь для просмотра всего текста

[attachment=»22697703:2screenshot4.png»]

Изменить битрейт на стороне устройства мы не можем и зашли в тупик.

Вопрос, как заcтравить его воспроизводиться и почему он без проблем идет на iOS

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

Понравилась статья? Поделить с друзьями:
  • Mediaplayer error 1 2147483648
  • Mean squared error regression loss
  • Median standard error
  • Mean squared error python это
  • Median absolute error