Воспроизведение видео с внутреннего хранилища Android со временем зависает / падает

1

У меня возникла проблема с воспроизведением видео mp4, которое связано с замораживанием видео в произвольной, но непротиворечивой точке во время воспроизведения (случайный, поскольку он, по-видимому, отличается от устройства к устройству, но согласуется с тем, что оно похоже на одно и то же место на данном устройстве). Видео, о котором идет речь, загружается на устройство с удаленного URL-адреса и сохраняется во внутреннем устройстве. Поскольку собственный класс VideoView не поддерживает воспроизведение видео из внутреннего хранилища, я создал модифицированную версию VideoView с новым методом, который принимает файловый дескриптор, указывающий на соответствующий видеофайл. Класс также был изменен, чтобы установить источник данных медиаплеера в этот файловый дескриптор. Это приводит к тому, что видео воспроизводится из внутреннего хранилища устройств, хотя и с проблемой замораживания, описанной выше.

Судя по выходу logcat, вставленному ниже, кажется, что проблема связана с сбоем mediaserver, возможно, с участием segfault. Я видел следы стека аналогичных сбоев в другом месте в сети, но они, похоже, связаны с использованием камеры, а не с воспроизведением видео. Я тестировал это на трех разных телефонах, два под управлением Android 2.2.1, а третий - на Android 2.1. Может ли кто-нибудь указать мне, что может вызвать эту проблему и как я могу ее исправить или обойти?

WARN/InputManagerService (103): [01-25 14: 55: 48.791 9274: 0x27db F/MPEG4Extractor]
WARN/InputManagerService (103): frameworks/base/media/libstagefright/MPEG4Extractor.cpp: 1595 srcOffset + mNALLengthSize <= размер
INFO/DEBUG (55): * ** * ** * ** * ** * ** **
INFO/DEBUG (55): Создайте отпечаток пальца: "vodafone/vfpioneer/сапфир/сапфир: 2.2.1/FRG83D/75603: пользователь/ключи-release"
INFO/DEBUG (55): pid: 9274, tid: 10203 → > /system/bin/mediaserver < <
INFO/DEBUG (55): сигнал 11 (SIGSEGV), ошибка addr deadbaad
INFO/DEBUG (55): r0 00000000 r1 0000000c r2 00000027 r3 00000000
INFO/DEBUG (55): r4 00000000 r5 deadbaad r6 00001728 r7 fffde6df
INFO/DEBUG (55): r8 00100000 r9 a340a1f1 10 4050a000 fp 00016db8
INFO/DEBUG (55): ip ffffffff sp 40609908 lr afd154c5 pc afd11dc4 cpsr 40000030
WARN/AACDecoder (9274): AAC-декодер вернул ошибку 1, заменив молчание...
WARN/AACDecoder (9274): AAC-декодер вернул ошибку 1, заменив молчание INFO/DEBUG (55): # 00 pc 00011dc4/system/lib/libc.so
INFO/DEBUG (55): # 01 pc 0000135c/system/lib/liblog.so
INFO/DEBUG (55): код вокруг компьютера:
INFO/DEBUG (55): afd11da4 1c2bd00b 2d00682d e026d1fb 2b0068db
INFO/DEBUG (55): afd11db4 4e17d003 51a02001 4d164798 24002227
INFO/DEBUG (55): afd11dc4 f7fb702a 2106ee14 ef10f7fc 05592380
WARN/AACDecoder (9274): AAC-декодер вернул ошибку 1, заменив молчание INFO/DEBUG (55): afd11dd4 6091aa01 1c116054 94012006 eab6f7fc
INFO/DEBUG (55): afd11de4 2200a905 f7fc2002 f7fbeac2 2106ee00
INFO/DEBUG (55): код вокруг lr:
INFO/DEBUG (55): afd154a4 b0834a0d 589c447b 26009001 686768a5
INFO/DEBUG (55): afd154b4 220ce008 2b005eab 1c28d003 47889901
INFO/DEBUG (55): afd154c4 35544306 d5f43f01 2c006824 b003d1ee
INFO/DEBUG (55): afd154d4 bdf01c30 0002ae7c 000000d4 1c0fb5f0
INFO/DEBUG (55): afd154e4 43551c3d a904b087 1c16ac01 604d9004
INFO/DEBUG (55): стек:
INFO/DEBUG (55): 406098c8 00000000
INFO/DEBUG (55): 406098cc 000003a0
INFO/DEBUG (55): 406098d0 afd40498/system/lib/libc.so
INFO/DEBUG (55): 406098d4 afd41b6c/system/lib/libc.so
INFO/DEBUG (55): 406098d8 00000000
INFO/DEBUG (55): 406098dc afd154c5/system/lib/libc.so
WARN/AACDecoder (9274): AAC-декодер вернул ошибку 1, заменив молчание INFO/DEBUG (55): 406098e0 00000009
INFO/DEBUG (55): 406098e4 afd1450d/system/lib/libc.so
INFO/DEBUG (55): 406098e8 0000005f
INFO/DEBUG (55): 406098ec afd40328/system/lib/libc.so
INFO/DEBUG (55): 406098f0 00000000
INFO/DEBUG (55): 406098f4 00001728
INFO/DEBUG (55): 406098f8 fffde6df
INFO/DEBUG (55): 406098fc afd147ab/system/lib/libc.so
INFO/DEBUG (55): 40609900 df002777
INFO/DEBUG (55): 40609904 e3a070ad
INFO/DEBUG (55): # 00 40609908 40609904
INFO/DEBUG (55): 4060990c 00000001
INFO/DEBUG (55): 40609910 a2f89987/system/lib/libstagefright.so
INFO/DEBUG (55): 40609914 0000000f
INFO/DEBUG (55): 40609918 4060993c
INFO/DEBUG (55): 4060991c fffffbdf
INFO/DEBUG (55): 40609920 4060993c
INFO/DEBUG (55): 40609924 a2f89987/system/lib/libstagefright.so
INFO/DEBUG (55): 40609928 a2fab2a8/system/lib/libstagefright.so
INFO/DEBUG (55): 4060992c afa0135f/system/lib/liblog.so
INFO/DEBUG (55): # 01 40609930 4060993c
INFO/DEBUG (55): 40609934 afa0135f/system/lib/liblog.so
WARN/AACDecoder (9274): AAC-декодер вернул ошибку 1, заменив молчание WARN/AACDecoder (9274): AAC-декодер вернул ошибку 1, заменив молчание INFO/DEBUG (55): 40609938 40609d54
INFO/DEBUG (55): 4060993c 6d617266
INFO/DEBUG (55): 40609940 726f7765
INFO/DEBUG (55): 40609944 622f736b
INFO/DEBUG (55): 40609948 2f657361
INFO/DEBUG (55): 4060994c 6964656d
INFO/DEBUG (55): 40609950 696c2f61
INFO/DEBUG (55): 40609954 61747362
INFO/DEBUG (55): 40609958 72666567
INFO/DEBUG (55): 4060995c 74686769
INFO/DEBUG (55): 40609960 45504d2f
INFO/DEBUG (55): 40609964 78453447
INFO/DEBUG (55): 40609968 63617274
INFO/DEBUG (55): 4060996c 2e726f74
INFO/DEBUG (55): 40609970 3a707063
INFO/DEBUG (55): 40609974 35393531
WARN/AACDecoder (9274): AAC-декодер вернул ошибку 1, заменив молчание...
WARN/AACDecoder (9274): AAC-декодер вернул ошибку 1, заменив молчание INFO/ServiceManager (52): служба "media.audio_flinger" умерла INFO/ServiceManager (52): служба "media.player" умерла INFO/ServiceManager (52): служба "media.camera" умерла
INFO/ServiceManager (52): служебная среда .audio_policy "умерла WARN/IMediaDeathNotifier (10181): медиа-сервер скончался
ERROR/MediaPlayer (10181): ошибка (100, 0)
ERROR/MediaPlayer (10181): ошибка (100,0)
DEBUG/VideoView (10181): Ошибка: 100,0
WARN/AudioSystem (103): сервер AudioFlinger скончался!
WARN/AudioSystem (103): сервер AudioPolicyService скончался!
INFO/BootReceiver (103): копирование/данные/надгробные камни /tombstone _03 в DropBox (SYSTEM_TOMBSTONE)

  • 0
    У вас есть пример видео файла, который вызвал проблему?
  • 0
    Что произойдет, если вы воспроизводите тот же файл из внешнего хранилища с неизмененной версией videoview?
Теги:
media-player
segmentation-fault
internal
videoview

1 ответ

1

Это связано с этим вопросом

Причины связаны с недостаточным количеством папок службы памяти/звуковой системы

Ещё вопросы

Сообщество Overcoder
Наверх
Меню