View unanswered posts | View active topics It is currently 23 Apr 2019, 09:58

Reply to topic  [ 1 post ] 
 Γράφοντας ήχο και βίντεο 
Author Message
Site Admin
User avatar

Joined: 24 May 2008, 23:50
Posts: 626
Location: Athens
Post Γράφοντας ήχο και βίντεο
Η εγγραφή ήχου και βίντεο είναι λίγο πιο πολύπλοκη διαδικασία απο την αναπαραγωγή τους όπως θα περιμέναμε, αλλά είναι εξίσου απλή. Πρέπει απλά να γίνει ακόμα ενα βήμα.

1. Δημιουργήστε ενα στιγμιότυπο της κλασης χρησιμοποιώντας την new

2. Δημιουργήστε ενα στιγμιότυπο της κλασης android.content.ContentValues και βάλτε του κάποιες στανταρ τιμές όπως: TITLE, TIMESTAMP, και το πιο σημαντικό: MIME_TYPE

3. Δημιουργήστε ένα μονοπάτι που θα αποθηκευτούν τα δεδομένα (μπορείτε να χρησιμοποιήσετε το android.content.ContentResolver για να δημιουργήσετε μια καταχόρηση στο Content database και να το αφήσετε να σας δίνει ένα μονοπάτι αυτόματα κάθε φορά που το χρησιμοποιείτε.)

4. Προαιρετικά (αν και συνίσταται) για βίντεο, δημιουργήστε ενα Preview display σε ενα view surface στο UI του activity, ώστε να μπορείτε να δείτε τι καταγράφετε. Χρησιμοποιείστε το MediaRecorder.setPreviewDisplay()

5. Για το βίντεο, θέστε την πηγή του βίντεο χρησιμοποιώντας την μέθοδο MediaRecorder.setVideoSource(). Το πιθανότερο είναι να θέλετε να χρησιμοποιήσετε το MediaRecorder.VideoSource.CAMERA

6. Για τον ήχο, θέστε την πηγή του ήχου χρησιμοποιώντας την μέθοδο MediaRecorder.setAudioSource(). Το πιθανότερο είναι να θέλετε να χρησιμοποιήσετε το MediaRecorder.AudioSource.MIC

7. Θέστε το format του αρχείου, το μέγεθος του βίντεο και το frame rate με τις εξής μεθόδους:
* MediaRecorder.setOutputFormat()
* MediaRecorder.setVideoSize()
* MediaRecorder.setVideoFrameRate()

8. Θέστε τον encoder του ήχου (και πιθανώς του βίντεο):
* MediaRecorder.setAudioEncoder()
* MediaRecorder.setVideoEncoder()

9. Τέλος, καλέστε τις μεθόδους prepare() και start() για την εγγραφή. Καλέστε τις stop() και release() όταν τελειώσετε.

Εδώ ένα παράδειγμα κώδικα που θα σας βοηθήσει:
    recorder = new MediaRecorder();
    ContentValues values = new ContentValues(3);

    values.put(Video.MediaColumns.TITLE, SOME_NAME_HERE);
    values.put(Video.MediaColumns.TIMESTAMP, System.currentTimeMillis());
    values.put(Video.MediaColumns.MIME_TYPE, recorder.getMimeContentType());
    contentResolver = new ContentResolver();
    Uri base = Video.Media.INTERNAL_CONTENT_URI;
    Uri newUri = contentResolver.insert(base, values);
    if (newUri == null) {
        // need to handle exception here - we were not able to create a new
        // content entry
    String path = contentResolver.getDataFilePath(newUri);

    // could use setPreviewDisplay() to display a preview to suitable View here
    recorder.setVideoSize(176, 144); // QCIF


Chief Software Engineer @
Κωνσταντίνος Πολυχρόνης
Πρόσθεσε την εφαρμογή σου:

01 Jul 2008, 11:22
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 1 post ] 

Who is online

Users browsing this forum: Exabot [Bot] and 6 guests

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware.