投稿からデモを実装しました: Android and MJPEG
しかし、しばらくするとアプリケーションで常にエラーが発生し、例外が発生しました。
java.lang.IllegalArgumentException: Invalid Unicode sequence: illegal character
class の次のコード内MjpegViewThread
:
public void run() { 開始 = System.currentTimeMillis(); PorterDuffXfermode モード = 新しい PorterDuffXfermode(PorterDuff.Mode.DST_OVER); ビットマップ bm; int 幅; 整数の高さ; Rect destRect; キャンバス c = null; ペイント p = 新しいペイント(); 文字列 fps = ""; while (mRun) { if(表面完了) { 試す { c = mSurfaceHolder.lockCanvas(); 同期 (mSurfaceHolder) { 試す { bm = mIn.readMjpegFrame(); destRect = destRect(bm.getWidth(),bm.getHeight()); c.drawColor(Color.BLACK); c.drawBitmap(bm, null, destRect, p); if(showFps) { p.setXfermode(モード); if(ovl != null) { 高さ = ((ovlPos & 1) == 1) ? destRect.top : destRect.bottom-ovl.getHeight(); 幅 = ((ovlPos & 8) == 8) ? destRect.left : destRect.right -ovl.getWidth(); c.drawBitmap(ovl, width, height, null); } p.setXfermode(null); フレームカウンター++; if((System.currentTimeMillis() - 開始) >= 1000) { fps = String.valueOf(frameCounter)+"fps"; フレームカウンター = 0; 開始 = System.currentTimeMillis(); ovl = makeFpsOverlay(overlayPaint, fps); } } } キャッチ (IOException e) { Log.i(TAG, "エラー: "+e); } } } キャッチ (例外 e) { Log.i(TAG, "エラー: "+e); } 最後に { もし (c != null) mSurfaceHolder.unlockCanvasAndPost(c); } } } }
次の LogCat 情報が役立つかどうかはわかりません。
09-27 17:06:36.645: D/dalvikvm(10120): threadid=9: 元に戻した後も中断されています (sc=1 dc=1) 09-27 17:06:46.745: D/dalvikvm(10120): GC_EXTERNAL_ALLOC は 132K を解放し、47% は 2998K/5575K を解放し、外部は 1625K/2137K を一時停止しました。 09-27 17:06:46.825: D/dalvikvm(10120): GC_EXTERNAL_ALLOC 解放 65K、47% 解放 2997K/5639K、外部 2227K/2779K、一時停止 27ms 09-27 17:06:46.955: D/dalvikvm(10120): GC_EXTERNAL_ALLOC 解放 127K、48% 解放 2997K/5703K、外部 2827K/2827K、一時停止 40ms 09-27 17:06:47.385: D/dalvikvm(10120): GC_EXTERNAL_ALLOC 解放 142K、48% 解放 3000K/5703K、外部 2827K/2827K、一時停止 31ms 09-27 17:06:47.515: D/dalvikvm(10120): GC_EXTERNAL_ALLOC 解放 131K、48% 解放 2997K/5703K、外部 2827K/2827K、一時停止 27ms 09-27 17:06:47.615: D/dalvikvm(10120): GC_EXTERNAL_ALLOC 解放 127K、48% 解放 2997K/5703K、外部 2827K/2827K、一時停止 31ms
誰でもこの問題を解決する手がかりを教えてもらえますか?