<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Wave aufnehmen klappt, aber..]]></title><description><![CDATA[<p>Hallo liebe Community!</p>
<p>Ich wollte in meinem Programm eine Funktion einbauen, die das Mikro/die Stimme vom dem Anwender aufnimmt.</p>
<p>Zurzeit habe ich es wie folgt:</p>
<pre><code>DWORD Aufnehmen(DWORD Millisekunden)
{
    UINT wDeviceID;
    DWORD dwReturn;
    MCI_OPEN_PARMS OeffneParameter; //Stream öffnen
    MCI_RECORD_PARMS RecordeParameter; //Aufnehmen
    MCI_SAVE_PARMS SichereParameter; //Nach der Aufnahme speichern

    OeffneParameter.lpstrDeviceType = &quot;waveaudio&quot;;
    OeffneParameter.lpstrElementName = &quot;&quot;;

    if (dwReturn = mciSendCommand(0, MCI_OPEN, MCI_OPEN_ELEMENT | MCI_OPEN_TYPE, (DWORD)(LPVOID) &amp;OeffneParameter))
    {
        return (dwReturn);
    }

    wDeviceID = OeffneParameter.wDeviceID;

    RecordeParameter.dwTo = Millisekunden; // Wieviele Sekunden lang aufgenommen werden sollen
    if (dwReturn = mciSendCommand(wDeviceID, MCI_RECORD, MCI_TO | MCI_WAIT, (DWORD)(LPVOID) &amp;RecordeParameter))
    {
        mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL);
        return (dwReturn);
    }

    SichereParameter.lpfilename = &quot;Sounddatei.wav&quot;; // Name der Datei
    if (dwReturn = mciSendCommand(wDeviceID, MCI_SAVE, MCI_SAVE_FILE | MCI_WAIT, (DWORD)(LPVOID) &amp;SichereParameter))
    {
        mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL);
        return (dwReturn);
    }

    return 0;

}

int main()
{
Aufnehmen(10000); //10 Sekunden lang wird aufgenommen
return 0;
}
</code></pre>
<p>Ich würde das aber nun gerne OHNE Zeitangabe haben. Das heisst, wenn der Anwender bei meinem Programm auf &quot;Stopp&quot; drückt, soll die Aufnahme aufhören und dann noch speichern.<br />
Ich weiß nicht wie ich das am besten machen soll?<br />
Habe es schon mit &quot;bool aufnahme=false&quot; probiert (und bei Millisekunden stattdessen aufnahme hingeschrieben), klappt allerdings nicht wie gewünscht.</p>
<p>---</p>
<p>Ein anderes -eher nebensächliches- Problem wäre noch die Qualität, das Rauschen im Hintergrund ist etwas 'zu' stark, kann man das abschwächen bzw. klarer machen?</p>
<p>Danke schonmal für eure Hilfe!</p>
<p>Mit frendlichen Grüße<br />
seren1ty :p</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/235978/wave-aufnehmen-klappt-aber</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 21:56:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/235978.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 09 Mar 2009 12:19:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wave aufnehmen klappt, aber.. on Mon, 09 Mar 2009 12:19:25 GMT]]></title><description><![CDATA[<p>Hallo liebe Community!</p>
<p>Ich wollte in meinem Programm eine Funktion einbauen, die das Mikro/die Stimme vom dem Anwender aufnimmt.</p>
<p>Zurzeit habe ich es wie folgt:</p>
<pre><code>DWORD Aufnehmen(DWORD Millisekunden)
{
    UINT wDeviceID;
    DWORD dwReturn;
    MCI_OPEN_PARMS OeffneParameter; //Stream öffnen
    MCI_RECORD_PARMS RecordeParameter; //Aufnehmen
    MCI_SAVE_PARMS SichereParameter; //Nach der Aufnahme speichern

    OeffneParameter.lpstrDeviceType = &quot;waveaudio&quot;;
    OeffneParameter.lpstrElementName = &quot;&quot;;

    if (dwReturn = mciSendCommand(0, MCI_OPEN, MCI_OPEN_ELEMENT | MCI_OPEN_TYPE, (DWORD)(LPVOID) &amp;OeffneParameter))
    {
        return (dwReturn);
    }

    wDeviceID = OeffneParameter.wDeviceID;

    RecordeParameter.dwTo = Millisekunden; // Wieviele Sekunden lang aufgenommen werden sollen
    if (dwReturn = mciSendCommand(wDeviceID, MCI_RECORD, MCI_TO | MCI_WAIT, (DWORD)(LPVOID) &amp;RecordeParameter))
    {
        mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL);
        return (dwReturn);
    }

    SichereParameter.lpfilename = &quot;Sounddatei.wav&quot;; // Name der Datei
    if (dwReturn = mciSendCommand(wDeviceID, MCI_SAVE, MCI_SAVE_FILE | MCI_WAIT, (DWORD)(LPVOID) &amp;SichereParameter))
    {
        mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL);
        return (dwReturn);
    }

    return 0;

}

int main()
{
Aufnehmen(10000); //10 Sekunden lang wird aufgenommen
return 0;
}
</code></pre>
<p>Ich würde das aber nun gerne OHNE Zeitangabe haben. Das heisst, wenn der Anwender bei meinem Programm auf &quot;Stopp&quot; drückt, soll die Aufnahme aufhören und dann noch speichern.<br />
Ich weiß nicht wie ich das am besten machen soll?<br />
Habe es schon mit &quot;bool aufnahme=false&quot; probiert (und bei Millisekunden stattdessen aufnahme hingeschrieben), klappt allerdings nicht wie gewünscht.</p>
<p>---</p>
<p>Ein anderes -eher nebensächliches- Problem wäre noch die Qualität, das Rauschen im Hintergrund ist etwas 'zu' stark, kann man das abschwächen bzw. klarer machen?</p>
<p>Danke schonmal für eure Hilfe!</p>
<p>Mit frendlichen Grüße<br />
seren1ty :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1676629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1676629</guid><dc:creator><![CDATA[seren1ty]]></dc:creator><pubDate>Mon, 09 Mar 2009 12:19:25 GMT</pubDate></item><item><title><![CDATA[Reply to Wave aufnehmen klappt, aber.. on Mon, 09 Mar 2009 17:52:36 GMT]]></title><description><![CDATA[<p>Weiß keiner rat dazu? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1676928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1676928</guid><dc:creator><![CDATA[seren1ty]]></dc:creator><pubDate>Mon, 09 Mar 2009 17:52:36 GMT</pubDate></item><item><title><![CDATA[Reply to Wave aufnehmen klappt, aber.. on Mon, 09 Mar 2009 19:05:23 GMT]]></title><description><![CDATA[<p>Wahrscheinlich solltest du dann MCI_WAIT und MCI_TO weglassen und stattdessen beim Button-Event die Aufnahme stoppen und speichern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1676959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1676959</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Mon, 09 Mar 2009 19:05:23 GMT</pubDate></item><item><title><![CDATA[Reply to Wave aufnehmen klappt, aber.. on Tue, 10 Mar 2009 16:07:49 GMT]]></title><description><![CDATA[<p>Funktioniert leider nicht, weil es immer 2 Parameter sein müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1677474</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1677474</guid><dc:creator><![CDATA[seren1ty]]></dc:creator><pubDate>Tue, 10 Mar 2009 16:07:49 GMT</pubDate></item><item><title><![CDATA[Reply to Wave aufnehmen klappt, aber.. on Tue, 10 Mar 2009 18:33:49 GMT]]></title><description><![CDATA[<p>seren1ty schrieb:</p>
<blockquote>
<p>Funktioniert leider nicht, weil es immer 2 Parameter sein müssen.</p>
</blockquote>
<p>Was müssen 2 Parameter sein?</p>
<p>Lass doch einfach beim Aufnehmen MCI_TO weg und übergib MCI_NOTIFY statt MCI_WAIT, dazu setz in MCI_RECORD_PARMS das Callback-Handle. Evtl gehts auch, wenn du für die Flags 0 übergibst. Dann einfach zum Testen ein Sleep(3000) und anschließend den Save-Krams.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1677555</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1677555</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 10 Mar 2009 18:33:49 GMT</pubDate></item><item><title><![CDATA[Reply to Wave aufnehmen klappt, aber.. on Wed, 11 Mar 2009 00:35:24 GMT]]></title><description><![CDATA[<p>also, für ne aufnahme ohne zeitlimit würd ich ganz klar direkt in ein file reinstreamen. den header kannte dann hinterher anpassen, so hab ich das gemacht.<br />
mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1677761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1677761</guid><dc:creator><![CDATA[wave n00b]]></dc:creator><pubDate>Wed, 11 Mar 2009 00:35:24 GMT</pubDate></item></channel></rss>