Audio Dateien über Sockets verschicken

  • 11 Antworten
  • Letztes Antwortdatum
B

BlupBlup

Ambitioniertes Mitglied
1
Hi,

ist es möglich Audiodateien über Sockets von einem Smartphone an einen Rechner zu verschicken?

Es gibt ja die Klasse OutputStream mit der müsste es doch möglich sein
eine mp3 Datei oder ähnliches zu versenden ?!

Hat jemand Erfahrung damit und Hinweise oder Tipps diesbezüglich?
 
Du kannst alles über ein Socket versenden wenn ich mich nicht irre.
Die Frage ist nur, wie der Empfänger damit umgeht.
 
  • Danke
Reaktionen: BlupBlup
Der Zweck der App:

Ich möchte eine simple Diktiergerät App schreiben.
Der Benutzer klickt auf "Aufnehmen", spricht einige Sekunden irgendwas drauf,
klickt auf "Stopp" oder "Speichern" und anschließend soll die Datei (vermutlich mp3) an einen Rechner über ein Socket verschickt werden.
Der Empfänger also der Rechner soll die Audiodatei in irgendeinem Ordner abspeichern.
 
Naja, wenn du das machen willst und nur mit sockets arbeitest wirst du dir ein eigenes protokoll ausdenken müssen, damit der Server das verarbeiten kann.

Evtl wäre es einfacher, wenn du das per HTTP verschickst.
Oder mal googlen nach "Dateien verschicken java" o.ä. solltest du sicher was finden.
 
  • Danke
Reaktionen: BlupBlup
Ich habe drei Android Bücher mittlerweile. Leider steht darin nur sehr wenig etwas zum verschicken von Dateien über Sockets insbesondere zum Thema Audiodateien versenden ist es schwer etwas gutes zu finden.

In einem der drei Bücher werden zwei Methoden vorgestellt zum verschicken von Dateien.
Sockets und HTTP. Allerdings möchte ich Sockets verwenden, da mir das bei meinem jetzigen Wissensstand wohl am besten erscheint, da ich so auch eine dauerhafte Verbindung aufrechthalten kann (dies ist für spätere Zwecke nötig).

Hmm du sagst ich muss mir ein eigenes Protokoll ausdenken, damit der Server das verarbeiten kann. Was meinst du damit genau ein neues Protokoll ausdenken? Mit was für Schwierigkeiten wird der Server denn konfrontiert? Kannst du darauf etwas konkreter eingehen?

In dem Buch Java ist auch eine Insel steht, dass über die Klasse Outputstream Binärdateien verschickt werden können. Audiodateien sind meines Wissens nach auch Binärdateien, weshalb ich dachte es würde darüber vielleicht funktionieren.

Aber besonders viel Nützliches konnte ich bisher nicht finden.
 
Ja also es ist eigentlich vollkommen egal was du verschickst, ob bild, video, audio das wird alles gleich behandelt, sind alles binärdateien.

Das Problem ist, du baust eine Socketverbindung auf soweit so gut.
Dann schickst du die Datei rüber, der server muss aber z.b. wissen wann die datei aufhört, es sei denn du machst den socket nur auf um einzig und allein die datei zu verschicken.

Dann könnte das funktionieren.
Wenn du eine dauerhafte Verbindung aufbauen willst brauchst du ein Protokoll, dass dem Server z.b. sagt jetzt kommt eine Datei mit der Größe X.
Dann kann der Server alle Dateien die danach kommen als Datei wegspeichern und hört nach X bytes auf.

Ich halte das alles für nicht ganz trivial HTTP wäre da einfacher, da du dort schon ein Protokoll hast (http nämlich).

Datei mittels TCP übertragen @ Java - tutorials.de: Tutorial, Forum, Anleitung & Hilfe

Das Beispiel funktioniert angeblich.
Allerdings machst du hier den Socket einzig und allein für die Datei auf und auf der Server Seite ist das ganze auch mit Java implementiert.
 
  • Danke
Reaktionen: BlupBlup
Hmm das klingt recht interessant. Ich muss das mal in den nächsten Tagen ausprobieren.
Wenn es wirklich so ist, dass man über die Klasse OutputStream sowohl Bilddateien, als auch Audiodateien verschicken kann dann wäre das optimal.

Auf dem Server werd ich ein normales Java Programm als Server erstellen. Und auf dem Smartphone werde ich mit Android 4.0 arbeiten.

Danke für die Hinweise. Mal schauen was ich draus machen kann.
 
BlupBlup schrieb:
Der Benutzer klickt auf "Aufnehmen", spricht einige Sekunden irgendwas drauf,
klickt auf "Stopp" oder "Speichern" und anschließend soll die Datei (vermutlich mp3) an einen Rechner über ein Socket verschickt werden.

Ich glaub amfa hat da irgendwas falsch verstanden. Ist doch stinknormales Datei versenden.
 
  • Danke
Reaktionen: BlupBlup
Ne das hab ich schon verstanden.

Nur einfach so eine Datei über ein Socket schicken geht auch nur "einfach" wenn man den socket extra dafür aufmacht.. wenn er da noch andere daten rüber schicken will wirds komplizierter.

Wobei mir gerade einfällt.. er könnte einen socket für befehle aufmachen und für die datei noch einen 2. dann ist das auch kein so großes problem :D (ähnlich wie FTP)
 
  • Danke
Reaktionen: BlupBlup
Ja, richtig. Ein eigenes "Protokoll" würde ich das jetzt nicht unbedingt nennen :D. Er kann einfach vor jeden Nutzinformationen ein Byte senden, dass angibt was für Daten erwartet werden, dann kann er auch den gleichen Socket nutzen. Das Programm am PC liest einfach zunächst bei einkommenden Nachrichten nur das erste Byte ein und bei z.B. 0x86 folgen MP3 Daten, bei 0x87 Textdaten usw. und dann davon abhängig agieren.
 
  • Danke
Reaktionen: BlupBlup
ja und schon hast du ein protokoll :D
FTP macht auch nicht viel anders ausser dass FTP sprechendere Befehle in String form verwendet ;)
 
  • Danke
Reaktionen: BlupBlup
So hab das jetzt mal mit videos, bilder, texten und audiodateien probiert und es funktioniert.
Danke
 

Ähnliche Themen

AnnaBauer21
Antworten
0
Aufrufe
457
AnnaBauer21
AnnaBauer21
D
Antworten
8
Aufrufe
732
jogimuc
J
S
Antworten
7
Aufrufe
1.107
Silvasurf
S
AnnaBauer21
Antworten
6
Aufrufe
903
AnnaBauer21
AnnaBauer21
tarek857
Antworten
4
Aufrufe
408
tarek857
tarek857
Zurück
Oben Unten