我正在开发一个应用程序来录制视频。
我在Nexus 4和Sony Ericsson mini pro上运行良好的应用程序中得到了这段代码,但当我在其他设备上测试时,比如Archos 80G9和Jiayu G3ST时,应用程序给出了以下错误
“MediaRecorder启动失败-19”
private boolean prepareVideoRecorder() {
/** ADDED Sony Ericsson Stoped */
try {
mCamera.setPreviewDisplay(null);
} catch (java.io.IOException ioe) {
Log.d(TAG,
"IOException nullifying preview display: "
+ ioe.getMessage());
}
mCamera.stopPreview();
mMediaRecorder = new MediaRecorder();
// Step 1: Unlock and set camera to MediaRecorder
mCamera.unlock();
mMediaRecorder.setCamera(mCamera);
// Step 2: Set sources
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
// Step 3: Set a CamcorderProfile (requires API Level 8 or higher)
CameraBackFront cm = new CameraBackFront();
int id = cm.getBackCameraId();
if (qualityString().equalsIgnoreCase("Low")) {
mMediaRecorder.setProfile(CamcorderProfile.get(id,
CamcorderProfile.QUALITY_LOW));
} else if (qualityString().equalsIgnoreCase("High")) {
mMediaRecorder.setProfile(CamcorderProfile.get(id,
CamcorderProfile.QUALITY_HIGH));
} else if (qualityString().equalsIgnoreCase("480p")) {
mMediaRecorder.setProfile(CamcorderProfile.get(id,
CamcorderProfile.QUALITY_480P));
} else if (qualityString().equalsIgnoreCase("720p")) {
mMediaRecorder.setProfile(CamcorderProfile.get(id,
CamcorderProfile.QUALITY_720P));
} else if (qualityString().equalsIgnoreCase("1080p")) {
try {
mMediaRecorder.setProfile(CamcorderProfile.get(id,
CamcorderProfile.QUALITY_1080P));
} catch (Exception e) {
mMediaRecorder.setProfile(CamcorderProfile.get(id,
CamcorderProfile.QUALITY_HIGH));
}
} else {
mMediaRecorder.setProfile(CamcorderProfile.get(0,
CamcorderProfile.QUALITY_HIGH));
}
// Step 4: Set output file
mMediaRecorder.setOutputFile(getOutputMediaFile(MEDIA_TYPE_VIDEO)
.toString());
/** ADD FILE NAME */
addFileNameDB();
// Step 5: Set the preview output
mMediaRecorder.setPreviewDisplay(mPreview.getHolder().getSurface());
// Step 6: Prepare configured MediaRecorder
try {
mMediaRecorder.prepare();
} catch (IllegalStateException e) {
Log.d(TAG,
"IllegalStateException preparing MediaRecorder: "
+ e.getMessage());
releaseMediaRecorder();
return false;
} catch (IOException e) {
Log.d(TAG, "IOException preparing MediaRecorder: " + e.getMessage());
releaseMediaRecorder();
return false;
}
return true;
}
我试过:
mediaCorder.start()
之前放置thread.sleep(1000);
但这会给我一个错误。camcorderprofile.hasprofile(camcorderprofile.quality_720p)
获取相机质量,因为这总是使用在电话上工作的配置文件。最后我解决了我的问题
...
releaseCamera();
if(prepareVideoRecorder){
...
}
prepareVideoRecorder()之前。
并在prepareVideoRecorder中添加一个新的Camera实例。
public void prepareVideoRecorder(){
mCamera = getCameraInstance();
...
}
问题内容: 我的媒体录制出现问题。我正在尝试使用前置摄像头进行记录。这给我一个错误(但预览正常)。每当我使用后置摄像头时,一切正常,我觉得这很奇怪。可能是什么问题,可能是解决方案?我的代码和错误如下所示。 编辑。使用VGA前置摄像头录制似乎不起作用。这怎么可能?虽然可以使用HTC camera应用程序进行录制。 预先感谢您。 行添加到清单: 错误日志: 问题答案: 找到了解决方案。由于我使用的是前
我正在工作的视频录制应用程序,在其中我想显示预览,当用户点击记录按钮,它开始录制,当用户点击停止按钮,它停止录制。 我有视频预览在我的表面,但当我按下开始按钮,它崩溃的错误“Media.Recorder.start(本机方法)。这是我的代码,请帮助我的家伙。
错误:无法启动连接:错误:WebSocket无法连接。在服务器上找不到连接,endpoint可能不是信号器endpoint,服务器上不存在连接ID,或者存在阻止WebSocket的代理。如果有多台服务器,请检查是否启用了粘性会话。 WebSocketTransport.js:49WebSocket连接到“ws://xxxxxx/生产/网络服务/集线器/spreadhub”失败: Angular.t
我正在使用NetBeans 8.0.2(也在最新的夜间版本中尝试过),并试图在端口8084上启动TomEE Plume服务器(也在不同的端口上尝试过)。服务器启动和工作正常,但NetBeans认为它没有启动,在大约2分钟的等待(“等待Tomcat”)后,抛出一个错误窗口“Tomcat失败启动”或类似的东西。 有些问题与我的问题相似,不同的是我完全没有错误,只有“Tomcat失败启动”窗口,所以我甚
我目前有一个游戏,有一个地图是480x3200,一个人从顶部掉下来。镜头跟在人的后面,随着人的下落有平台。平台需要是可触摸的,所以我可以在游戏中旋转和移动它们,所以我把它变成了一个图像,而它原本只是一个精灵。 编辑:
我尝试用python和C++实现代码,结果相同。还尝试另存为。png而不是。jpg。rtsp feed在使用imshow显示相机时工作正常,只有在试图保存帧时才会出现问题。据我所知,这些错误都与ffmpeg有关,但是google对这些类型的错误帮助不大。