在从三星Galaxy S4录制.mp4
视频并将其上传到服务器后,我尝试在VideoView
的Nexus 5设备上将其流式传输失败并且Logcat显示此
E/MediaPlayer﹕ Error (1,-2147483648)
D/MediaPlayer﹕ Couldn't open file on client side, trying server side
视频结果为4.82mb
,并通过意图
//VIDEO CAMERA
Intent cameraIntent = new Intent( MediaStore.ACTION_VIDEO_CAPTURE);
cameraIntent.putExtra( MediaStore.EXTRA_DURATION_LIMIT, 20);
cameraIntent.putExtra( MediaStore.EXTRA_VIDEO_QUALITY, 1 );
startActivityForResult( cameraIntent, TAKE_VIDEO_REQUEST_CODE );
录制的视频在Samsung设备上正常播放,当我将文件从服务器下载到我的电脑时,播放正常。我已经尝试将文件下载到我的Nexus设备但仍然无法播放,尝试在VideoView
内对其进行流式处理,并且每次都出现上述错误而失败。我尝试从Nexus 5上传视频,三星设备正常播放。我迷失了为什么会发生这种情况,有没有人遇到类似的问题并找到了解决办法或者我做错了什么?
它也无法在任何系统视频播放器中播放,但仍在原装三星设备上播放。 此外,我测试了较低的分辨率,然后它工作,所以现在我认为我需要找到一种方法来改变视频捕获后的分辨率或发送指令,如果可能的话使用一定的分辨率。对这方面有任何帮助吗?
答案 0 :(得分:0)
这些消息并不表示错误:
E/MediaPlayer﹕ Error (1,-2147483648)
D/MediaPlayer﹕ Couldn't open file on client side, trying server side
您可以获得这些内容,因为流媒体内容只能在服务器端打开。在这些之后你应该得到另一个错误,例如错误(1,-1001)。很可能S4使用的是Nexus 5不支持的配置文件。
至于分辨率,您使用的intent API仅支持2种质量设置(高和低)。低意味着非常低,并且取决于设备。
要更好地控制视频捕获,可以使用Camera和MediaRecorder界面。 http://developer.android.com/guide/topics/media/camera.html#capture-video有一个指南。
对于更高级的示例,http://developer.android.com/samples/MediaRecorder/index.html处有一个示例项目。