<?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[mciSendString - Spieldauer ermitteln]]></title><description><![CDATA[<p>Hallo, und zwar habe ich einen kleinen Video / Musikplayer geschrieben.<br />
Dieser funktioniert soweit prima. Nun möchte ich die Gesamtlänge des zum Zeitpunkt abgespielten Titels ermitteln.<br />
Bei Video's stimmt der ermittelte Wert. Bei MP3's hingegen ist es Wahlweise mal mehr und mal weniger Zeit.</p>
<p>So hat ein Titel mit 0:57 Minuten Spieldauer nur 0:50 Minuten, ein Titel mit 5:07 Minuten hat hingegen 9:45 Minuten laut dem was übergeben wird.</p>
<p>Die genaue Spieldauer benötige ich, da nach ablauf der Spieldauer der nächste Titel aus der Playlist gespielt werden soll.</p>
<p>Die Funktion zum ermitteln der Gesamtspieldauer:</p>
<pre><code class="language-cpp">void GetLength()
{
      // Buffer zum Speichern der Zeit
      char* buffer = new char[256];
      AnsiString mciCommand = &quot;status MP3 Length&quot;;
      // Anfrage der Spieldauer
      mciSendString(mciCommand.c_str(), buffer, 256, NULL);
      // Spieldauer auf Variable für millisekunden einlesen
      int nmsec = StrToInt(buffer);
      // Spieldauer in sekunden berechnen
      int nsec = nmsec/1000;
      // Spieldauer in minuten berechnen
      int nmin = nsec/60;
      // Verbleibende Sekunden ermitteln
      nsec = nsec - (nmin*60);
      // Ausgabe der Spieldauer
      Label9-&gt;Caption = IntToStr(nmin)+ &quot;:&quot; + IntToStr(nsec);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/244317/mcisendstring-spieldauer-ermitteln</link><generator>RSS for Node</generator><lastBuildDate>Fri, 03 Apr 2026 21:26:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/244317.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 28 Jun 2009 12:36:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to mciSendString - Spieldauer ermitteln on Sun, 28 Jun 2009 12:36:46 GMT]]></title><description><![CDATA[<p>Hallo, und zwar habe ich einen kleinen Video / Musikplayer geschrieben.<br />
Dieser funktioniert soweit prima. Nun möchte ich die Gesamtlänge des zum Zeitpunkt abgespielten Titels ermitteln.<br />
Bei Video's stimmt der ermittelte Wert. Bei MP3's hingegen ist es Wahlweise mal mehr und mal weniger Zeit.</p>
<p>So hat ein Titel mit 0:57 Minuten Spieldauer nur 0:50 Minuten, ein Titel mit 5:07 Minuten hat hingegen 9:45 Minuten laut dem was übergeben wird.</p>
<p>Die genaue Spieldauer benötige ich, da nach ablauf der Spieldauer der nächste Titel aus der Playlist gespielt werden soll.</p>
<p>Die Funktion zum ermitteln der Gesamtspieldauer:</p>
<pre><code class="language-cpp">void GetLength()
{
      // Buffer zum Speichern der Zeit
      char* buffer = new char[256];
      AnsiString mciCommand = &quot;status MP3 Length&quot;;
      // Anfrage der Spieldauer
      mciSendString(mciCommand.c_str(), buffer, 256, NULL);
      // Spieldauer auf Variable für millisekunden einlesen
      int nmsec = StrToInt(buffer);
      // Spieldauer in sekunden berechnen
      int nsec = nmsec/1000;
      // Spieldauer in minuten berechnen
      int nmin = nsec/60;
      // Verbleibende Sekunden ermitteln
      nsec = nsec - (nmin*60);
      // Ausgabe der Spieldauer
      Label9-&gt;Caption = IntToStr(nmin)+ &quot;:&quot; + IntToStr(nsec);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1734038</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1734038</guid><dc:creator><![CDATA[inflames2k]]></dc:creator><pubDate>Sun, 28 Jun 2009 12:36:46 GMT</pubDate></item><item><title><![CDATA[Reply to mciSendString - Spieldauer ermitteln on Mon, 29 Jun 2009 20:39:53 GMT]]></title><description><![CDATA[<p>Irgendwie kann ich mir eines nicht erklären. Bei einigen mp3's ist die Spieldauer genau richtig.</p>
<p>Bei denen, bei welchen sie zu hoch ist kommt es zu einem eigenartigen Effekt. Ich habe in dem Timer, welcher zum nächsten Lied wechselt eine if Abfrage drin, welche erst dann wahr ist, wenn die abgelaufene Spielzeit der Gesamtdauer entspricht. Sowie das Lied zu Ende ist, geht er ist die Bedingung war. Für mich unerklärlich.</p>
<p>Habe dann den aufruf der Funktion herausgenommen, mit welcher das nächste Lied gespielt wird und siehe da, er macht einen Sprung vom eigentlichen Ende des Liedes auf die &quot;angebliche Spieldauer&quot;.</p>
<p>Kann mir jemand diesen Effekt erklären? Ich mein, da muss sich ja am Ende der Datei noch etwas befinden, was da unpassend ist.</p>
<p>Genauso ist mir unklar warum einige Lieder mit zu geringer Spieldauer angezeigt werden. Hier habe ich ja das Problem, dass mitten im Lied abgebrochen wird.</p>
<p>Über google fand ich gerade heraus, dass einige mp3's falsche Headerangaben haben. Aber woher kommt dies?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1734755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1734755</guid><dc:creator><![CDATA[inflames2k]]></dc:creator><pubDate>Mon, 29 Jun 2009 20:39:53 GMT</pubDate></item></channel></rss>