Sound/Musik über das Mikrofon abspielen/Sound an Skype senden

  • VB.NET

Es gibt 30 Antworten in diesem Thema. Der letzte Beitrag () ist von thefiloe.

    Sound/Musik über das Mikrofon abspielen/Sound an Skype senden

    Hallo,
    ich weiß, das es diese Frage bereits Tausend mal in diesem Forum gibt, aber es gab nie eine richtige Lösung. Ich stell mir das so vor, dass man einfach den Pfad zur Sound Datei angeben muss und die dann abgespielt wird, und es dann der Skype Anrufer hört. Ich möchte, dass möglichst alles über einen Code/API geht, also nicht manuell irgendetwas umstellen.

    Danke für jede Antwort :)

    *Topic verschoben*
    Mfg
    Vincent

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Das geht nicht mal eben so.
    Dazu musst du mindestens das Aufnahmegerät in Skype ändern.
    z.B. bei Teamspeak gibts die Möglichkeit das Aufnahmegerät auf StereoMix zu stellen. Dann wird alles gesendet was du hörst inklusive Windowssounds.
    Das Mic geht dann natürlich nicht mehr.
    Das wäre dann die einfachste Möglichkeit.

    Ansonsten gibts noch jede Menge Freeware/kostenpflichtige Programme, die irgendwelche virtuellen Input/Output Geräte erstellen, damit man z.B. direkt von der Soundkarte aufnehmen kann (da kenn ich mich nicht so aus).

    Ne Lösung über Code fällt mir nicht ein.
    Nö geht mal einfach so.
    Du kannst direkt auf den Microstream von skype zugreifen. In dem fall musst du halt die Stimme löschen und mit der Musik überschreiben.
    Hier ein Beispiel wo die Stimme beeinflusst wird: skypefx.codeplex.com/


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

    thefiloe schrieb:

    Nö geht mal einfach so.
    Du kannst direkt auf den Microstream von skype zugreifen. In dem fall musst du halt die Stimme löschen und mit der Musik überschreiben.
    Hier ein Beispiel wo die Stimme beeinflusst wird: skypefx.codeplex.com/
    Vielen Dank, aber auf der Seite "Source Code" ist alles auf C#, ist zwar so ähnlich, ich versteh aber trotzdem nichts... :(
    Mfg
    Vincent

    Ach und jetzt hättest du gern, dass dir das noch jemand nach vb übersetzt?
    Du musst oft bei einer Problemstellung Tage oder sogar Wochen in Dinge einlesen um dann halbwegs was sinnvolles erstellen zu können. Jetzt bekommst du nen fertigen Code welcher auch noch zu nahezu 100% konvertierbar ist aber hättest gern ne vb Version?

    Vll. solltest lieber bei dem klassischen Button mit ner MessageBox im Eventhandler bleiben :thumbdown: :thumbdown:

    PS. Vollzitat ist unnötig. Du schreibst direkt eine Antwort auf meinen Post. Da ist der Zusammenhang auch so ersichtlich.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Entschuldigung, so sollte das nicht klingen, ich muss ja auch noch lernen. Ok, ich werde versuchen, es zu übersetzen, und ich sehe ja dann, ob es geht oder nicht. Könntest du mir nur noch einen letzten Tipp geben? Welchen Code muss ich da übersetzen, auf der Seite Source Code gibt es mehrere Menüs... Bitte!
    Mfg
    Vincent

    Verbessere mich, wenn ich mich irre, aber ein Forum soll doch dazu sein, dass man anderen weiterhilft, wenn sie etwas nicht schaffen. Ihr habt mir nur die Seite zu dem C# Code geschrieben, denn ich nicht mal ansatzweise verstehe, weil ich mit Visual Basic programmiere und nicht mit Java oder C++ oder C#. Das heißt, ihr habt mir eigentlich gar nicht geholfen. Diese Frage ist im Visual Basic Forum. Und da kann man ja vielleicht erwarten, dass man möglicherweise Antworten auf seine Frage in seiner Programmiersprache bekommt. Das wäre so, als wenn wir hier in einem Deutsch Forum wären, und ich würde nicht verstehen, was "Ich habe Hunger" auf Deutsch heißt und ihr schreibt mir Türkische Antworten und sagt, übersetz das mal eben.


    Danke für eure großartige Hilfe! :thumbdown: :thumbdown: :thumbdown:
    Mfg
    Vincent

    C# hat lediglich ne andere Syntax als VB.NET, der Inhalt ist derselbe, insofern wäre ein Vergleich zwischen Kölsch und Rheinisch passender.
    Guck dir den Code doch einfach mal länger als 2 Minuten an, vielleicht fallen dir ja Dinge auf.
    Mir fällt zB. auf, dass:

    das = das (nur Imports)


    das , das , das und das ist in xml


    Und hier wird auch nur Importiert

    Mehr ist nicht unter "Skype Voice Changer" außer die Einstellungen. Das waren jetzt 5 Minuten den Code angucken.
    Mfg
    Vincent

    Ich programmiere in Window Forms, und wenn jetzt hier irgendjemand mit "Wieso denn, WPF ist doch viel besser,..." kommt, Video meliora proboque deteriora sequor. Jetzt ist der unterschied nicht mehr
    Kölsch und Rheinisch
    sondern Deutsch - Chinesisch.
    Mfg
    Vincent

    Was laberst du eigentlich?
    a) Kannst du nicht behaupten, dass man dir nicht geholfen hat. Ich hab dir den Code praktisch vorgesetzt. Hab ihn sogar noch extra getestet, da es öfters ma Probleme mit der Version der SkypeCom4 gibt.
    b) Ich sags dir nochmal. Du kannst so gut wie ALLES mit VB bzw. anderen Sprachen machen. Es gibt aber nicht für ALLES eine Lösung. Oft muss man sich da halt auch ma anstrengen. Und gerade bei solchen Themen die nicht jeder bearbeitet ist das nunmal so. Du hast jedoch ein rießen Glück, dass jemand schon genau das gemacht hat was du brauchst. Es wäre sogar ein Glück wenn der Code in Delphi, C++,... geschrieben wäre, denn selbst das kann man übersetzen. Du hast jedoch Glück², dass der Code in C# geschrieben ist. Und man kann sehr wohl in einem VB Forum C# Code posten. Wenn es keine anderen Lösungen im Netz gibt,... was soll ich posten? Wenn du willst, dass ich dir das programmiere... kein Problem. Ich bekomms hin keine Angst(siehe Profilbeschreibung - Erfahrung mit sowas). Jedoch fangen wir dann bei 50€+ an. Wenn du das nicht bezahlen willst, sei dankbar wenn ich dir das ganze Zeug schon raussuche und teste. Wir geben hier jedoch nur Tipps bzw. verweisen auf Quellen welche Lösungen beinhalten, was ich getan habe. Alles andere liegt, dann an der Eigeninitiative von dir. Jedoch wenn dir das Zeug zu hoch ist, darfst du nicht mir die Schuld geben, dass ich dir nicht geholfen hätte(es ist ja nicht so als sei ich dazu verpflichtet... das ist alles in meiner Freizeit und freiwillig).

    Kurz: Ich hab dir geholfen und zwar so, dass du daraus locker selbst eine Lösung erarbeiten kannst. Wenn dir der Code zu schwer oder kompliziert ist, dann sag das einfach JEDOCH hau nicht anderen Vorwürfen an den Kopf nur weil du damit nicht fertig wirst. Du kannst Fragen aber auf eine andere Art. Also überleg dir erstmal, ob es dir Wert ist so nen Projekt zu machen. Du musst nämlich auch bedenken wenn du da z.B. MP3 streamen willst, brauchst du wiederum einen Decoder dafür, da das Teil PCM oder IeeeFloat(weiß nicht mehr genau) verlangt.

    Und wenn du das wirklich willst(und das übersteigt irgend nen paar billige Forums mit hässlichem Code zusammenschustern), dann darfst du jetzt nochmal langsam und ganz ruhig erklären was denn dein Problem ist.

    Wenn nicht, dann such dir nen anderes Projekt, das du hinbekommst. Und wenn dir jemand einen Tipp geben möchte wie z.B., dass WPF wesentlich neuer, besser, mehr Möglichkeiten bietet,..., dann könntest du den Tipp auch annehmen. Ob du dann WPF verwendest ist deine Entscheidung. Aber du kannst davon ausgehen, dass du garantiert nicht beurteilen kannst was besser ist. Und mit Aussagen wie:
    Video meliora proboque deteriora sequor.
    kommen wir alle nicht weiter.


    EDIT:


    Was dein Problem mit leeren Dateien angeht: Hättest du mal die Kommentare der Check-Ins gelesen, bevor du hier die Sau raus lässt wäre dir folgendes aufgefallen:
    Starting work on a WPF version that will feature a simplified UI
    Starting steht für: Der Entwickler startet erst damit, hat es noch nicht. Hättest du das Projekt mal heruntergeladen(oder auf der Website mal die Projekte etwas durchgeclickt) und etwas Eigeninitiative gezeigt, dann hättest du auch jede Menge GUI's gefunden welche nicht leer sind. Dies sind nämlich die alten WinForms Dateien welche noch vorhanden sind aber demnächst wohl ersetzt werden.

    Kurz: Du veranstaltest hier nen rießen Zirkus obwohl du nur mal nen paar Klicks machen müsstest. Ich helfe gern aber mit deinem Desinteresse kann dir keiner helfen.

    EDIT2: Habs grad gestartet. Du hast in der neuen Version sogar schon die fertige Möglichkeit Mp3's, und Wav's zu streamen.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „thefiloe“ ()

    Gut. Ich habe mir ebenfalls das Projekt gedownloadet. Ich habe das Projekt geöffnet und erstmal versucht, das ganze zu starten.
    ---------------------------
    Microsoft Visual Studio Express 2012 für Windows Desktop
    ---------------------------
    Ein Projekt mit dem Ausgabetyp "Klassenbibliothek" kann nicht direkt gestartet werden.

    Um das Projekt zu debuggen, fügen Sie dieser Projektmappe ein ausführbares Projekt hinzu, das auf das Bibliotheksprojekt verweist. Legen Sie das ausführbare Projekt als Startprojekt fest.
    ---------------------------
    OK
    ---------------------------

    Das ist der Fehler, der kommt.
    Mfg
    Vincent

    Komm lass es einfach. Das wird in 1000 Jahren nix.
    Wie gesagt. Es gibt mehr als nur eine Projektmappe mit einem Projekt mit einer Form mit jede menge Brainfuck Code. Wenn du F5 drückst startet das STARTPROJEKT. Nun ist das in der Projektmappe eine Klassenbibliothek. Alles was du tun musst ist, Rechtsclick auf das gewünschte Projekt und als Startprojekt festlegen oder einfach dieses debuggen bzw. starten.

    Außerdem wenn du das Zeug ein einziges mal in Google eingibst findest du den Fehler sofort: Google
    Ich finde dein Vorhaben wirklich interessant und ich würd dir auch gern helfen. Aber beherrscht nichmal nen winzigen Teil der absoluten Grundlagen. Und sowas ist nunmal für so gut wie für alles erforderlich.
    Von dem her würd ich mir einfach erstmal die VeryBasics durchlesen oder anschauen. Gerade wenn du was mit Multimedia machen möchtest kommst du dabei nicht rundum. Hier nützt dir nämlich nen billiges WMP-Control oder ne Bass.dll nix. Hier musste schon selbst halbwegs wissen was ne SampleRate, ... ist.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Gut gut, ich habe jetzt angefangen, das Projekt SkypeFx zu übersetzen. Ich glaube, ich bin auch schon ziemlich weit gekommen, aber so ein paar Sachen wollen einfach nicht klappen:

    Das hier habe ich so in VB übersetzt

    Original
    Spoiler anzeigen

    VB.NET-Quellcode

    1. private void buttonAddEffect_Click(object sender, EventArgs e)
    2. {
    3. EffectSelectorForm effectSelectorForm = new EffectSelectorForm(Effects);
    4. if (effectSelectorForm.ShowDialog(this) == DialogResult.OK)
    5. {
    6. // create a new instance of the selected effect as we may want multiple copies of one effect
    7. Effect effect = (Effect)Activator.CreateInstance(effectSelectorForm.SelectedEffect.GetType());
    8. audioGraph.AddEffect(effect);
    9. int index = checkedListBox1.Items.Add(effect, true);
    10. checkedListBox1.SelectedIndex = index;
    11. }
    12. //MessageBox.Show(String.Format("I have {0} effects", Effects.Count));
    13. }


    Meine Übersetzung:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub buttonAddEffect_Click(sender As Object, e As EventArgs)
    2. Dim effectSelectorForm As New EffectSelectorForm(Effects)
    3. If effectSelectorForm.ShowDialog(Me) = DialogResult.OK Then
    4. Dim effect As Effect = DirectCast(Activator.CreateInstance(effectSelectorForm.SelectedEffect.[GetType]()), Effect)
    5. audioGraph.AddEffect(effect)
    6. Dim index As Integer = checkedListBox1.Items.Add(effect, True)
    7. checkedListBox1.SelectedIndex = index
    8. End If
    9. End Sub


    Dabei wird bei EffectSelectorForm ein Fehler angezeigt.

    was soll das sein?:

    VB.NET-Quellcode

    1. Properties.Settings appSettings = Properties.Settings.Default;


    Klar,

    VB.NET-Quellcode

    1. Dim appSettings As Properties.Settings = Properties.Settings.[Default] '?

    sollen das My.Settings sein?

    das hier kapier ich größtenteils überhaupt nicht:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. private void OnConnect(NetworkStream stream)
    2. {
    3. var connect = Connect;
    4. if (connect != null)
    5. {
    6. connect(this, new ConnectedEventArgs() { Stream = stream });
    7. }
    8. }
    9. private void OnDisconnect()
    10. {
    11. var disconnect = Disconnect;
    12. if (disconnect != null)
    13. {
    14. disconnect(this, EventArgs.Empty);
    15. }
    16. }
    17. private void OnDataReceived(byte[] buffer)
    18. {
    19. var execute = DataReceived;
    20. if (execute != null)
    21. {
    22. execute(this, new DataReceivedEventArgs() { Buffer = buffer });
    23. }
    24. }

    Wo bekommt der denn dauernd dieses Connect und Disconnect her? Ich meine, var disconnect = Disconnect; heißt doch in VB Dim disconnect = Disconnect oder hab ich da irgendetwas verwechselt?

    Insgesamt habe ich 19 Fehler...
    Mfg
    Vincent

    EffectSelectorForm wird wohl eine andere Klasse bzw. Form in dem Projekt sein(du musst mehrere Dateien des Projekts anschauen... alle die du halt brauchst).
    Ich gehe mal davon aus, dass Disconnect und Connect Events sind. Die wirst du wohl selber deklarieren müssen.
    Das if(connect != null) ist eine Ausnahme von C# zu VB. In C# musst du überprüfen ob ein Eventhandler auf das Event registriert ist. In VB musst du das nicht. Somit kannst du das If weglassen(gilt natürlich auch für Disconnect und Execute bzw DataRecived). Muss halt selber schauen was Events sind und was nicht.
    Was die Settings angeht. Ich gehe davon aus ja. Und hier ist auch wieder das Paradebeispiel wieso man in VB weder den My-Namespace verwenden sollte, noch alte Funktionen wie MsgBox,...

    Events in C# msdn.microsoft.com/de-de/library/8627sbea(v=vs.80).aspx
    Events VB.NET codeproject.com/Articles/5041/…-Event-handling-in-VB-NET

    Hab die Arikel nicht gelesen - sehen aber recht OK aus.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    So, ich bin fast fertig mit dem übersetzen. Hab das meiste geschafft, aber hiermit komme ich gar nicht klar:

    VB.NET-Quellcode

    1. private void Compose()
    2. {
    3. var catalog = new AggregatingComposablePartCatalog();
    4. var mainAssemblyCatalog = new AttributedAssemblyPartCatalog(this.GetType().Assembly);
    5. var jsNetCatalog = new AttributedAssemblyPartCatalog(typeof(Effect).Assembly);
    6. //var addInEffects = new DirectoryPartCatalog("Effects");
    7. catalog.Catalogs.Add(mainAssemblyCatalog);
    8. catalog.Catalogs.Add(jsNetCatalog);
    9. //catalog.Catalogs.Add(addInEffects);
    10. var container = new CompositionContainer(catalog);
    11. container.AddPart(this);
    12. container.Compose();
    13. }



    Was zum Teufel soll denn AggregatingComposablePartCatalog? Wenn ich im C# Projekt drüberfahre, kommt:

    AggregatingComposablePartCatalog.AggregatingComposablePartCatalog() (+ 2 Überladungen)

    Kann es sein, dass es sowas in VB nicht gibt?
    Mfg
    Vincent