初めまして、山本と申します。
プレイリストに登録した動画を連続再生させているとSurfaceでOutOfResourcesException発生して再生が出来なくなります。
原因や対処方法などお心当たりのあるお方の助言をお願いします。
・VideoViewはメインのViewにAddviewしたままremoveせず動画ファイルのみ更新
・動画の再生時間もプレイリストに登録してあり、時間経過後、Stop-コンテンツ再登録-Startを繰り返しています
・ツール(名称は失念)を入れてForeGroundアプリへのメモリ割り当てを拡張したところExceptionまでの間隔は延びましたが現象は解消
しません
同載対象機はSharp A01SH OSは3.2です。
ログには以下のような出力があります。
ERROR/MemoryHeapBase(91): mmap(fd=464, size=15667200) failed (Out of
memory)
DEBUG/HierarchicalStateMachine(138): handleMessage: X
ERROR/OMXNodeInstance(91): OMX_UseBuffer failed with error -
2147479547
(0x80001005)
ERROR/OMXCodec(91): allocate_buffer_with_backup failed
WARN/MemoryDealer(91): madvise(0xffffffff, 1564672, MADV_REMOVE)
returned Invalid argument
VERBOSE/OMXNodeInstance(91): calling destroyComponentInstance
VERBOSE/OMXNodeInstance(91): destroyComponentInstance returned err 0
VERBOSE/OMXNodeInstance(91): OMXNodeInstance going away.
ERROR/MediaPlayer(9959): error (1, -
2147483648)
DEBUG/OpenGLRenderer(9959): GL error from OpenGLRenderer: 0x506
WARN/HardwareRenderer(9959): Mountain View, we've had a problem here.
Switching back to software rendering.
WARN/HardwareRenderer(9959): EGL error: EGL_BAD_CURRENT_SURFACE
ERROR/MediaPlayer(9959): Error (1,-
2147483648)
DEBUG/VideoView(9959): Error: 1,-
2147483648
WARN/GraphicBufferAllocator(88): alloc(600, 976, 1, 00000133, ...)
failed -12 (Out of memory)
ERROR/SurfaceFlinger(88): Layer::requestBuffer(this=0x79b48), index=0,
w=600, h=976 failed (Out of memory)
ERROR/Surface(9959): Surface (identity=2756) requestBuffer(0, 0, 0, 0,
00000033) returned a buffer with a null handle
ERROR/Surface(9959): getBufferLocked(0, 0, 0, 0, 00000033) failed (Out
of memory)
ERROR/Surface(9959): dequeueBuffer failed (Out of memory)
ERROR/ViewRoot(9959): OutOfResourcesException locking surface
ERROR/ViewRoot(9959): android.view.Surface$OutOfResourcesException
よろしくお願いします。