Πρόσβαση σε πολυμέσα

Το πρότυπο επικοινωνίας MCI (Media Control Interface) καθορίζει μια σειρά από εντολές που υποστηρίζονται από συσκευές multimedia για την επικοινωνία τους με το λογισμικό εφαρμογών. Έτσι όπως το BIOS (Basic Input Output System) των προσωπικών υπολογιστών παρέχει μία τυποποιημένη δυνατότητα ελέγχου της οθόνης, του δίσκου και του πληκτρολογίου μέσω των αντίστοιχων κλήσεων σε συναρτήσεις εξυπηρέτησης διακοπών (interrupt service function), έτσι και το πρότυπο MCI παρέχει την τυποποιημένη δυνατότητα ελέγχου περιφερειακών συσκευών multimedia. Για την επίτευξη όσο το δυνατό μεγαλύτερης συμβατότητας με πολλά περιβάλλοντα προγραμματισμού οι κλήσεις στον οδηγό MCI δεν είναι απαραίτητα συνδεδεμένες με κάποια συγκεκριμένη γλώσσα προγραμματισμού όπως η Visual Basic ή η C, αλλά αποτελούνται από απλές συμβολοσειρές με τις οποίες τα Windows επικοινωνούν με την αντίστοιχη συσκευή.

Στη Visual Basic το όργανο Microsoft Multimedia Control (το προσθέτουμε από την επιλογή Project - Components) επιτρέπει την εύκολη πρόσβαση σε πολυμέσα. Το όργανο εμφανίζεται με την παρακάτω μορφή:

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

  1. Καθορίζουμε το είδος της συσκευής με την οποία θέλουμε να μιλήσουμε. Αυτό γίνεται με ανάθεση στην ιδιότητα DeviceType η οποία υποστηρίζει τις ακόλουθες συσκευές:
  2. Kαθορίζουμε το όνομα του αρχείου που θέλουμε να γράψουμε ή να διαβάσουμε στην ιδιότητα FileName.
  3. Καθορίζομε άλλες ιδιότητες που έχουν να κάνουν με τον τρόπο εγγραφής ή αναπαραγωγής όπως Notify, Wait, Shareable.
  4. Θέτουμε στην ιδιότητα Command την εντολή που θέλουμε να εκτελεστεί. Υποστηρίζονται οι παρακάτω εντολές:
    CommandDescription
    OpenOpens a device using the MCI_OPEN command.
    CloseCloses a device using the MCI_CLOSE command.
    PlayPlays a device using the MCI_PLAY command.
    PausePauses playing or recording using the MCI_PLAY command. If executed while the device is paused, tries to resume playing or recording using the MCI_RESUME command.
    StopStops playing or recording using the MCI_STOP command.
    BackSteps backward using the MCI_STEP command.
    StepSteps forward using the MCI_STEP command.
    PrevGoes to the beginning of the current track using the Seek command. If executed within three seconds of the previous Prev command, goes to the beginning of the previous track or to the beginning of the first track if at the first track.
    NextGoes to the beginning of the next track (if at last track, goes to beginning of last track) using the Seek command.
    SeekIf not playing, seeks a position using the MCI_SEEK command. If playing, continues playing from the given position using the MCI_PLAY command.
    RecordRecords using the MCI_RECORD command.
    EjectEjects media using the MCI_SET command.
    SoundPlays a sound using the MCI_SOUND command.
    SaveSaves an open file using the MCI_SAVE command.
  5. Μπορούμε τέλος να επιτρέψουμε στο χρήστη να χρησιμοποιήσει τα πλήκτρα ελέγχου ή να προσθέσουμε δικό μας κώδικα σε κάθε πλήκτρο. Κάθε πλήκτρο έχει μια καθορισμένη λειτουργία ή μπορεί να καλέσει και μια συνάρτηση με βάση το όνομα του πλήκτρου. Τα πλήκτρα έχουν τα παρακάτω ονόματα: Αντίστοιχα μπορούμε να ενεργοποιήσουμε ή να απενεργοποιήσουμε συγκεκριμένα πλήκτρα ανάλογα με την εφαρμογή μας.
Παράδειγμα (αφού προσθέσουμε ένα όργανο με όνομα mcictrl):
Private Sub Form_Load()
    mcictrl.Notify = False
    mcictrl.Shareable = False
    mcictrl.DeviceType = "AVIVideo"
    mcictrl.filename = "C:\Program Files\Microsoft Office\Clipart\MMedia\globe.AVI"
    mcictrl.Command = "Open"
    mcictrl.Wait = True
    mcictrl.Command = "Play"
    mcictrl.Command = "Close"
    mcictrl.filename = "C:\Program Files\Microsoft Office\Clipart\MMedia\sonata8.wav"
    mcictrl.Command = "Open"
    mcictrl.Wait = True
    mcictrl.Command = "Play"
    mcictrl.Wait = True
    mcictrl.Command = "Close"
End Sub