ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java



Σχετικά έγγραφα
ιαδικτυακές Εφαρµογές

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ ΓΙΑ ΕΠΙΚΟΙΝΩΝΙΑ ΠΕΛΑΤΩΝ ΜΕΣΩ ΙΑ ΙΚΤΥΟΥ

Αντικειμενοστρεφής Προγραμματισμός

Αντικειµενοστρεφής Προγραµµατισµός

ΚΑΤΑΝΕΜΗΜΕΝΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΣΥΣΚΕΥΩΝ ΑΣΗΜΑΚΟΠΟΥΛΟΣ ΣΩΤΗΡΗΣ ΑΜ : 3021

Οντοκεντρικός Προγραμματισμός

10.1 Γενικά για τα streams

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

Διδάσκων: Παναγιώτης Ανδρέου

Εργαστήριο Java. Αντικείµενο: Δίκτυα. Χειρισµός URLs. Άσκηση 1. Lab11. Πακέτο java.net

6. Εξαιρέσεις στη γλώσσα Java

ΕΞΑΙΡΕΣΕΙΣ. Εξαιρέσεις προκαλούνται. από το σύστηµα. από το πρόγραµµα

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ

Οντοκεντρικός Προγραμματισμός

Μάθημα 2 [10/11/2015]

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων

άσκηση Hide UI Elements 7.2 Try and Catch

Προγραµµατισµός ΙΙ Java 2

Εργαστήριο ΔΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ & ΚΑΤΑΛΟΓΩΝ ΣΤΟ UNIX. Εισαγωγή

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αρχεία

Εργασία Μαθήματος Αξία: 40% του τελικού σας βαθμού Ανάθεση: Παράδοση:

Αντικειμενοστρεφής Προγραμματισμός

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Εγχειρίδιο Ζωντανών Μεταδόσεων Υπηρεσιών Βίντεο. Πανεπιστημίου Κρήτης. Εγχειρίδιο τεχνικού μετάδοσης

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1

Βασικά της γλώσσας JAVA

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

//στο pin 3 του μικροελεγκτή συνδέουμε το control pin του ρελέ. WRITE 'I am on' στο SOCKET // λέω στον client ότι άναψα τη λάμπα

Oι βασικές πράξεις (λειτουργίες) που ορίζονται για τον τύπο στοίβα αναφέρονται παρακάτω:

Ορισμός : URL είναι ένα ακρωνύμιο για το Uniform Resource Locator και το οποίο αποτελεί μια αναφορά ( μια διεύθυνση ) στο Internet.

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

Διαδίκτυο και Εφαρμογές 2η Άσκηση Μετασχηματισμοί XML και XSL. Γιαννέλος Γιάννης ΑΜ: Μαρινέλλης Γιώργος ΑΜ:

Java Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7

Εισαγωγή στις τεχνολογίες μετάδοσης

Δοκιμή και Αποσφαλμάτωση Testing and Debugging

11β Δομικά πρότυπα σχεδίασης

API: Applications Programming Interface

Αντικειμενοστρεφής Προγραμματισμός

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Generics και ArrayLists

Προγραµµατισµός ΙΙ Java 2

Mεταβλητές (variables) και Σταθερές (constants)

NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS. Διαχείριση Δικτύων. Nikolas Bompetsis

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Στοιχεία εξεταζόµενου Αριθµός Απάντησης Βαθµολογία. Σύνολο (Θέµα 4 ο )

Βασίλης Χριστοφίδης Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 21 Σεπτεµβρίου 2012

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

ΑΝΑΚΕΦΑΛΑΙΩΣΗ. Τα βασικά για την γλώσσα Java

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

Διδάσκων: Παναγιώτης Ανδρέου

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

Οντοκεντρικός Προγραμματισμός

ικτύωσησε Java Κατανεµηµένα Συστήµατα 08-1

Εγχειρίδιο Ζωντανών Μεταδόσεων Εξελιγμένων Υπηρεσιών Βίντεο Πανελληνίου Σχολικού Δικτύου Εγχειρίδιο τεχνικού μετάδοσης

Αντικειμενοστρεφής Προγραμματισμός

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

ΕΠΛ131 Αρχές Προγραμματισμού

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές

Συντακτικά λάθη, λάθη εκτέλεσης, Λογικά λάθη

Αντικειμενοστρεφής Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Κλάσεις και Αντικείµενα

Remote Method Invocation (RMI)

Διασυνδέσεις / Διεπαφές. Παναγιώτης Σφέτσος, PhD

HY335 4ο Φροντιστήριο

ΠΕ 2.3 Εξελιγμένες υπηρεσίες Βίντεο ΠΣΔ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Τι είναι η Spring. Η Spring είναι ένα ελεύθερο (open source) περιβάλλον εργασίας για εφαρμογές Java. Μπορεί να περιγραφεί ως:

Αντικειμενοστρεφής Προγραμματισμός

Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες

Υποστηρικτικό υλικό Σημειώσεις

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Αντικείμενα ως ορίσματα

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial

Μεθόδων Επίλυσης Προβλημάτων

{ πρωτόκολλο, τοπική-διεύθυνση, τοπική-διεργασία, απομακρυσμένη-διεύθυνση, απομακρυσμένη-διεργασία }

Transcript:

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java Java Media Framework Ηβιβλιοθήκη JMF Εγκαθίσταται επιπρόσθετα στη Java Αναπαραγωγή πολυµέσων Αποστολή και λήψη πολυµέσων σε πραγµατικό χρόνο Γραφικά αντικείµενα διεπαφής χρήστη (user interface) για τον έλεγχο των πολυµέσων π.χ. Ράβδοι εξέλιξης κ.α. Επισκεφτείτε το δικτυακό τόπο της JMF για να εξερευνήσετε τις δυνατότητές της: http://java.sun.com/products/javamedia/jmf/2.1.1/samples/ 1

ιαδικτυακή αναπαραγωγή Η διαδικτυακή αναπαραγωγή / εγγραφή επιτυγχάνεται µέσω του πρωτοκόλλου RTP (Real Time Protocol). Κατασκευάζουµε προγραµµατιστικά έναν διακοµιστή (server) για να αποστέλλει δεδοµένα κι έναν πελάτη (client) για να δέχεται δεδοµένα. ιαδικτυακή αναπαραγωγή Ηεφαρµογή JMStudio έχει ήδη εφαρµοσµένες τις συναρτήσεις της JMF Είναι καλό παράδειγµα για να φτιάχνουµε τις δικές µας εφαρµογές! ιατίθεται µε την JMF Ο κώδικάς της είναι ελεύθερος! 2

ιαδικτυακή αναπαραγωγή Από την επιλογή File Open File Άνοιγµα αρχείου πολυµέσων π.χ. Bach.wav Open URL Άνοιγµα επικοινωνίας πολυµέσων προσδιορίζοντας το κατάλληλο URL, π.χ. rtp://mediastreams.ibm.com:491 50/audio/1 ιαδικτυακή αναπαραγωγή Από την επιλογή File Open RTP Session Εκκίνηση επικοινωνίας µε RTP (αναµονή για λήψη) Προσδιορίζοντας τη διεύθυνση (address), τη θύρα (port) και το TTL (Time To Live) 3

ιαδικτυακή αναπαραγωγή Από την επιλογή File Transmit Μετάδοση µε RTP αποθηκευµένου αρχείου (file) πολυµέσων ή σύλληψη (capture) του αρχείου πολυµέσων από κάποια συσκευή (π.χ. κάµερα). ιαδικτυακή αναπαραγωγή 4

ιαδικτυακή αναπαραγωγή ιαδικτυακή αναπαραγωγή 5

ιαδικτυακή αναπαραγωγή Μεθοδολογία Θέτουµε έναν υπολογιστή Α να αναµένει δεδοµένα π.χ. βίντεο µε Open RTP Session από έναν υπολογιστή Β. Στον υπολογιστή Β του δικτύου δροµολογούµε την αποστολή του αρχείου βίντεο προς τον υπολογιστή Α µε Transmit. Αναπαραγωγή Ήχου Κατασκευή εφαρµογής που δέχεται ως όρισµα στη γραµµή εντολών το όνοµα ενός αρχείου ήχου π.χ. WAV και το αναπαραγάγει Εκτέλεση: java SimpleAudioPlayer bach.wav Προσοχή! Ο τύπος του αρχείου πρέπει να υποστηρίζεται από την JMF 6

Αναπαραγωγή Ήχου 1. Εισαγωγή πακέτου για δειγµ/νο ήχο import javax.sound.sampled.*; 2. Ανάγνωση του αρχείου ήχου AudioInputStream audioinputstream = AudioSystem.getAudioInputStream(soundFile) 3. Ανάγνωση της µορφής (format) του αρχείου π.χ. δειγµ/ψία (Hz) AudioFormat audioformat = audioinputstream.getformat(); 4. έσµευση γραµµής δεδοµένων α. SourceDataLine (αναπαραγωγή) β. Clip (επαναλαµβανόµενη αναπαραγωγή) γ. TargetDataLine (εγγραφή) SourceDataLine line = null; DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioformat); line = (SourceDataLine) AudioSystem.getLine(info); Αναπαραγωγή Ήχου 5. Άνοιγµα γραµµής line.open(audioformat); 6. Πέρασµα γραµµής από την κάρτα ήχου line.start(); 7. Ανάγνωση δεδοµένων από το AudioInputStream σε buffer και στη συνέχεια εγγραφή του buffer στη γραµµή int nbytesread = 0; byte[] abdata = new byte[external_buffer_size]; while (nbytesread!= -1) nbytesread = audioinputstream.read(abdata, 0, abdata.length); if (nbytesread >= 0) int nbyteswritten = line.write(abdata, 0, nbytesread); 8. Άδειασµα και κλείσιµο της γραµµής line.drain(); Line.close(); 7

Αναπαραγωγή Ήχου import java.io.*; import javax.sound.sampled.*; public class SimpleAudioPlayer private static final int EXTERNAL_BUFFER_SIZE = 128000; public static void main(string[] args) if (args.length!= 1) out("simpleaudioplayer: usage:"); out("\tjava SimpleAudioPlayer <soundfile>"); System.exit(1); String File strfilename = args[0]; soundfile = new File(strFilename); Αναπαραγωγή Ήχου /* We have to read in the sound file. */ AudioInputStream audioinputstream = null; try audioinputstream = AudioSystem.getAudioInputStream(soundFile); catch (Exception e) /* In case of an exception, we dump the exception including the stack trace to the console output. Then, we exit the program. */ e. printstacktrace(); System.exit(1); 8

Αναπαραγωγή Ήχου AudioFormat audioformat = audioinputstream.getformat(); SourceDataLine line = null; DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioformat); try line = (SourceDataLine) AudioSystem.getLine(info); line.open(audioformat); catch (LineUnavailableException e) e.printstacktrace(); System.exit(1); catch (Exception e) e.printstacktrace(); System.exit(1); Αναπαραγωγή Ήχου line.start(); int nbytesread = 0; byte[] abdata = new byte[external_buffer_size]; while (nbytesread!= -1) try nbytesread = audioinputstream.read(abdata, 0, abdata.length); catch (IOException e) e.printstacktrace(); if (nbytesread >= 0) int nbyteswritten = line.write(abdata, 0, nbytesread); 9

Αναπαραγωγή Ήχου line.drain(); line.close(); /* There is a bug in the jdk1.3/1.4. It prevents correct termination of the VM. So we have to exit ourselves. */ System.exit(0); private static void out(string strmessage) System.out.println(strMessage); 10