Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK

Βίντεο Streaming σε Εφαρμογές Android

by
Difficulty:IntermediateLength:LongLanguages:

Greek (ελληνικά) translation by Iris Diakoumi (you can also view the original English article)

Η πλατφόρμα Android παρέχει βιβλιοθήκες που μπορείτε να χρησιμοποιήσετε για να κάνετε streaming αρχείων πολυμέσων, όπως απομακρυσμένα βίντεο, παρουσιάζοντας τα για αναπαραγωγή στις εφαρμογές σας. Σε αυτό το tutorial, θα κάνουμε stream ένα αρχείο βίντεο, εμφαvίζοντας το χρησιμοποιώντας το στοιχείο VideoView μαζί με ένα αντικείμενο MediaController για να αφήσουμε τον χρήστη να ελέγξει την αναπαραγωγή.

Θα δούμε επίσης εν συντομία τη διαδικασία της παρουσιάσης του βίντεο χρησιμοποιώντας την κλάση MediaPlayer. Αν έχετε ολοκληρώσει την σειρά για τη δημιουργία μιας εφαρμογής αναπαραγωγής μουσικής για το Android, μπορείτε να χρησιμοποιήσετε ό,τι μάθετε σε αυτό το σεμινάριο για να την βελτιώσετε περαιτέρω. Θα πρέπει να είστε σε θέση να ολοκληρώσετε αυτό το tutorial, εάν έχετε ήδη αναπτύξει τουλάχιστον μερικές εφαρμογές του Android.

1. Δημιουργήστε μια Νέα Εφαρμογή

Βήμα 1

Μπορείτε να χρησιμοποιήσετε τον κώδικα σε αυτό το tutorial για να βελτιώσετε μια ήδη υπάρχουσα εφαρμογή πάνω στην οποία εργάζεστε ή μπορείτε να δημιουργήσετε τώρα μια νέα εφαρμογή στο Eclipse ή στο Android Studio. Δημιουργήστε ένα νέο project Android, δώστε του ένα όνομα της επιλογής σας, ρυθμίστε τις λεπτομέρειες και δώστε του  μια αρχική κύρια κλάση Activity και μια διάταξη.

Βήμα 2

Ας ρυθμίσουμε το manifest του project για το streaming πολυμέσων. Ανοίξτε το αρχείο manifest του project σας και μεταβείτε σε XML επεξεργασία στο IDE σας. Για streaming πολυμέσων, χρειάζεστε πρόσβαση στο διαδίκτυο, οπότε προσθέστε τα ακόλουθα δικαιώματα μέσα στο στοιχείο manifest:

2. Προσθέστε το VideoView

Βήμα 1

Η πλατφόρμα Android παρέχει την κλάση VideoView με την οποία μπορείτε να παίξετε αρχεία βίντεο. Ας προσθέσουμε μία, στο κύριο αρχείο διάταξης:

Αλλάξτε τη διάταξη του γονέα για να ταιριάξει στη δική σας εφαρμογή, εάν είναι απαραίτητο. Δίνουμε στο στιγμιότυπο VideoView ένα χαρακτηριστικό id, έτσι ώστε να μπορούμε αργότερα να αναφερθούμε σε αυτό. Ίσως χρειαστεί να προσαρμόσετε τις άλλες ιδιότητες της διάταξης για το δικό σας σχέδιο.

Βήμα 2

Τώρα ας ανακτήσουμε μια αναφορά στο στιγμιότυπο VideoView στον κώδικα. Ανοίξτε την κύρια κλάση Activity της εφαρμογής σας και προσθέστε τις ακόλουθες πρόσθετες εισαγωγές (imports):

Η κλάση σας Activity θα πρέπει να περιέχει ήδη τη μέθοδο onCreate, στον οποία ορίζεται η προβολή περιεχομένου:

Μετά τη γραμμή setContentView, ας δημιουργήσουμε μια αναφορά στο στιγμιότυπο VideoView ως εξής, χρησιμοποιώντας το id που ορίσαμε στη διάταξη XML:

3. Streaming ενός Αρχείου Βίντεο

Βήμα 1

Τώρα μπορούμε να κάνουμε stream ένα αρχείο βίντεο στην εφαρμογή. Προετοιμάστε το URI για το endpoint ως εξής:

Φυσικά, θα πρέπει να χρησιμοποιήσετε την απομακρυσμένη διεύθυνση για το αρχείο βίντεο που θέλετε να κάνετε stream. Το παράδειγμα εδώ είναι ένα αρχείο βίντεο δημόσιου τομέα που φιλοξενείται στο Internet Archive. Αναλύουμε τη συμβολοσειρά της διεύθυνσης ως URI, έτσι ώστε να το περάσουμε στο αντικείμενο VideoView:

Τώρα μπορείτε απλά να ξεκινήσετε την αναπαραγωγή:

Το λειτουργικό σύστημα Android υποστηρίζει μια σειρά από μορφές βίντεο και πολυμέσων, με κάθε συσκευή να υποστηρίζει συχνά πρόσθετες μορφές, πέρα από αυτά.

Όπως μπορείτε να δείτε στον Οδηγό για Προγραμματιστές, στις μορφές αρχείων βίντεο που υποστηρίζονται περιλαμβάνονται τα 3GP, MP4, WEBM και MKV, ανάλογα με τη μορφή που χρησιμοποιείται και σε ποιο επίπεδο πλατφόρμας έχει εγκαταστήσει ο χρήστης.

Στις μορφές αρχείων ήχου για τις οποίες μπορείτε να περιμένετε ενσωματωμένη υποστήριξη συμπεριλαμβάνονται οι MP3, MID, WAV και OGG. Μπορείτε να κάνετε streaming πολυμέσων σε συσκευές Android μέσω RTSP, HTTP και HTTPS (από Android 3.1).

4. Προσθέστε Στοιχεία Ελέγχου Αναπαραγωγής

Βήμα 1

Υλοποιήσαμε την αναπαραγωγή βίντεο, αλλά ο χρήστης θα περιμένει και έχει συνηθίσει να έχει τον έλεγχο της. Και πάλι, η πλατφόρμα Android παρέχει πόρους για να γίνει κάτι τέτοιο χρησιμοποιώντας μια οικεία αλληλεπίδραση, μέσω της κλάσης MediaController.

Στη μέθοδο onCreate της κλάσης σας Activity, πριν από τη γραμμή στην οποία καλείτε start στο VideoView, δημιουργήστε ένα στιγμιότυπο της κλάσης:

Στη συνέχεια, ρυθμίσετε το να χρησιμοποιεί το στιγμιότυπο VideoView ως άγκυρα:

Και τέλος, ορίστε το ως το χειριστή πολυμέσων για το VideoView αντικείμενο:

Τώρα όταν εκτελείτε την εφαρμογή, ο χρήστης θα πρέπει να είναι σε θέση να ελέγχει την αναπαραγωγή του streaming βίντεο, συμπεριλαμβανομένων πλήκτρων για μετάβαση εμπρός και πίσω, ένα κουμπί αναπαραγωγής/παύσης και μια μπάρα ελέγχου γραμμής αναζήτησης.

Το στοιχείου ελέγχου αναζήτησης συνοδεύεται από τη διάρκεια του αρχείου πολυμέσων στα δεξιά και την τωρινή θέση αναπαραγωγής στα αριστερά. Εκτός από την δυνατότητα να πατήσετε κατά μήκος της γραμμής αναζήτησης, για να μεταβείτε σε μια θέση στο αρχείο, η κατάσταση του streaming υποδεικνύεται χρησιμοποιώντας τον ίδιο τύπο οθόνης με τον οποίο ο χρήστης θα είναι εξοικειωμένος από ιστότοπους και εφαρμογές όπως το YouTube.

Όπως θα διαπιστώσετε όταν εκτελείτε την εφαρμογή, η προεπιλεγμένη συμπεριφορά είναι για τα στοιχεία ελέγχου εξαφανίζονται μετά από λίγo, και να επανεμφανίζονται όταν ο χρήστης αγγίζει την οθόνη. Μπορείτε να ρυθμίσετε τη συμπεριφορά του αντικειμένου MediaController με διάφορους τρόπους. Δείτε τη σειρά για τη δημιουργία μιας εφαρμογή αναπαραγωγής μουσικής για το Android για ένα παράδειγμα του πώς να το κάνετε αυτό. Επίσης, μπορείτε να βελτιώσετε την αναπαραγωγή πολυμέσων με την εφαρμογή διαφόρων listeners για να ρυθμίσετε τη συμπεριφορά της εφαρμογής σας.

5. Χρήση του MediaPlayer

Βήμα 1

Πριν τελειώσουμε, ας δούμε μια εναλλακτική προσέγγιση για το streaming βίντεο χρησιμοποιώντας την κλάση MediaPlayer, δεδομένου ότι τη χρησιμοποιήσαμε στη σειρά για τη δημιουργία μιας εφαρμογής αναπαραγωγής μουσικής. Μπορείτε να πραγματοποιείτε streaming πολυμέσων, συμπεριλαμβανομένου βίντεο, σε ένα αντικείμενο MediaPlayer χρησιμοποιώντας ένα surface view. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε την ακόλουθη διάταξη:

Θα αναφερθούµε στο SurfaceView στην υλοποίηση της κλάσης Activity.

Βήμα 2

Στην κλάση σας Activity, προσθέστε τις παρακάτω διεπαφές:

Το IDE σας θα πρέπει να σας ζητήσει να προσθέσετε αυτές τις μεθόδους που δεν έχουν υλοποιηθεί:

Θα προσθέσουμε τις μεθόδους surfaceCreated και onPrepared.

Βήμα 3

Για να υλοποιήσετε την αναπαραγωγή, προσθέστε τις ακόλουθες μεταβλητές στιγμιοτύπου στην κλάση:

Στη μέθοδο onCreate της Activity, μπορείτε έπειτα να αρχίσετε να αρχικοποιείτε αυτές τις μεταβλητές, χρησιμοποιώντας το αντικείμενο SurfaceView που προσθέσατε στη διάταξη:

Βήμα 4

Στη μέθοδο surfaceCreated, ορίστε τους πόρους αναπαραγωγής πολυμέσων:

Τέλος, στην μέθοδο onPrepared, ξεκινήστε την αναπαραγωγή:

Το βίντεό σας θα πρέπει τώρα να παίζει στο στιγμιότυπο MediaPlayer όταν εκτελείτε την εφαρμογή.

Συμπέρασμα

Σε αυτό το tutorial, περιγράψαμε τα βασικά στοιχεία του streaming βίντεο στο Android χρησιμοποιώντας τις κλάσεις VideoView και MediaPlayer. Θα μπορούσατε να προσθέσετε πολλές βελτιώσεις στον κώδικα που έχουμε υλοποιήσει εδώ, για παράδειγμα, με τη δημιουργία υποστήριξης βίντεο ή streaming πολυμέσων στην εφαρμογή αναπαραγωγής μουσικής που δημιουργήσαμε. Μπορεί επίσης να θέλετε να ρίξετε μια ματιά σε σχετικούς πόρους για το Android, όπως το Youtube Android Player API.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.