-1

在我的应用程序中,我的实际要求是录制视频文件并通过邮件分享给另一个人。但现在我可以录制视频文件并通过邮件朋友或某人分享该文件......我的共享文件有时会在真实设备上播放,并且其他一些时候不在真实设备上。这是因为在下载文件时减小了文件大小。可能是音频和视频的编码不当或文件的输出格式或发送到邮件附件的问题...

问题出在哪里?请帮我....

当记录开始我的代码是:

mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT); 
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mediaRecorder.setOutputFile("/sdcard/myvideo.3gp");
mediaRecorder.setMaxDuration(60000); // Set max duration 60 sec.

并将文件发送到邮件代码是:

fileshare = new File("/sdcard/myvideo.3gp");
File filelocation = fileshare ;
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setType("video/3gp");
sharingIntent.putExtra(Intent.EXTRA_EMAIL, "xxxxxxxxx@gmail.com" );
sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+filelocation.getAbsolutePath()));
startActivity(Intent.createChooser(sharingIntent, "Send email"));
4

1 回答 1

1

无法确定您是如何在您的应用程序中执行此操作的,但您需要等到 MediaRecorder 完成文件写入后才能使用它执行其他操作。您可以通过在 AsyncTask 中检查文件的字节 4 是否 >0 来做到这一点,或者您可以设置某种延迟,尽管这不太可靠。

于 2012-11-10T14:36:58.567 回答