MediaRecorderでの外部保存について - 日本Androidの会 | Google グループ
これを参考に、Galaxy Sでカメラで撮った映像をネットワークにそのまま流そうとしているのだけど、うまくいかない。
MediaRecorder#setOutputFile()でローカルの物理ファイル名を指定したときはファイルに正しく書き込まれるのだけど、SocketをFileDescriptorにして指定すると、相手先に接続はするもののデータが流れずにMediaRecorder#start()が例外を吐く。
ログを見ると、どうもカメラからのデータをファイル(ソケット)に出力で失敗しているのはわかるのだけど特にネットのサンプルソースから変えていないからな…。
08-29 03:41:31.465: ERROR/SecCamera(2193): startPreview: get the first frame of the preview 08-29 03:41:31.465: ERROR/CameraHardwareSec(2193): startPreview : return startPreview 0 08-29 03:41:31.465: DEBUG/CameraHardwareSec(2193): MemoryHeapBase(fd(23), size(3686464), width(640), height(480)) 08-29 03:41:31.465: ERROR/CameraHardwareSec(2193): CameraHardwareSec: mPostViewWidth = 640 mPostViewHeight = 480 mPostViewSize = 614400 08-29 03:41:31.465: ERROR/CameraHardwareSec(2193): CameraHardwareSec: mRawHeap : MemoryHeapBase(previewHeapSize(614408)) 08-29 03:41:31.505: ERROR/OsclDirectFileIO(2193): [LargeFileSupport]OsclDirectFileIO::Seek offset = -1509188668, ireturn = 4 seekmode =-1 08-29 03:41:31.510: DEBUG/CameraService(2193): startRecording (pid 2193) 08-29 03:41:31.510: DEBUG/CameraService(2193): startCameraMode(1) (pid 2193) 08-29 03:41:31.515: DEBUG/CameraService(2193): startRecordingMode (pid 2193) 08-29 03:41:31.515: DEBUG/SecCamera(2193): passed fmt = 842094164 found pixel format[8]: YUV 4:2:0 planar, Y/CbCr, Tiled 08-29 03:41:31.515: ERROR/SecCamera(2193): startRecord: m_recording_width = 320, m_recording_height = 240 08-29 03:41:31.543: ERROR/AuthorDriver(2193): Command 14 completed with error -1 08-29 03:41:31.543: ERROR/MediaRecorder(5393): start failed: -1
受信側もServerSocketで受けてInputStreamで読んでるだけだし。
ううむ、Galaxy S固有の問題なのか他の問題なのか切り分けがいまいちついてないな…。
コメント