मैं उस वीडियो को देखना चाहता हूं जिसे मैं वर्तमान में एक SurfaceView में रिकॉर्ड कर रहा हूं और यदि रिकोडिंग समाप्त हो गया है तो मैं उसी SurfaceView में वीडियो को फिर से चलाने के लिए चाहता हूं। भले ही मैंने सोचा कि यह ऐप्स में एक आम विशेषता होगी, मुझे कोई उदाहरण नहीं मिला और मेरा कोड काम नहीं कर सका।एंड्रॉइड: उसी सतह दृश्य में वीडियो रिकॉर्ड और चलाएं
private void prepareRecorder() {
try {
recorder = new MediaRecorder();
recorder.setPreviewDisplay(holder.getSurface());
camera.unlock();
recorder.setCamera(camera);
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_LOW);
recorder.setProfile(camcorderProfile);
File newFile = new File(videoFilePath);
recorder.setOutputFile(newFile.getAbsolutePath());
try {
recorder.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}catch(Exception e){
releaseCamera();
}
}
//
public void onClick(View v) {
if(mediaPlayer!=null) {
mediaPlayer.reset();
mediaPlayer.release();
}
mediaPlayer = new MediaPlayer();
try {
mediaPlayer.setDataSource(videoFile.getAbsolutePath());
SurfaceView surfaceView = (SurfaceView) getView().findViewById(R.id.videoInvitationFragSurfaceView);
mediaPlayer.setSurface(surfaceView.getHolder().getSurface());
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.start();
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
मैं बस, वीडियो मेरी कोड काम करता है रिकॉर्ड अगर सिर्फ वीडियो यह रूप में अच्छी तरह से काम करता है खेलते हैं। कोई विचार?
अग्रिम धन्यवाद
संपादित करें: एक मौजूदा समाधान के रूप में मैं दो SurfaceViews और "छिपाएँ" उन्हें (सेट 0 करने के लिए आकार) यदि
मैं एक ही मुद्दा हो रहा है, किसी भी नए समाधान या सिर्फ कामकाज? क्या आप अपना पूरा कोड भी दिखा सकते हैं, कृपया किस पर क्लिक करें? – Lion789
मैं अभी भी दो सतहदृश्यों के साथ कामकाज का उपयोग कर रहा हूं। जब मैं प्ले बटन पर क्लिक करता हूं तो मैं Surfaceview.setFixedSize (0,0) के माध्यम से पहली सतहदृश्य को छोटा करता हूं और दूसरे को उसी तरीके से विस्तारित करता हूं – AljoSt