WinFuture-Forum.de: Mcisendstring - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Mcisendstring


#1 Mitglied ist offline   Fabi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.958
  • Beigetreten: 30. August 04
  • Reputation: 1
  • Geschlecht:Männlich

  geschrieben 08. März 2006 - 10:29

hi,

ich und zwei kollegen müssen für die schule einen medi player programmieren, das hat auch bis jetzt alles soweit geklappt, nur sollten wir noch wissen wie wir es machen können das die titelnamen länger als z.B "Titel1.mp3" sein dürfen. und wir sollten wissen wie wir die länge des titels auf eine edit komponente oder so legen können.es sollte dann so funktionieren das die zeit bis zum ende dest titel hochgezählt wird, wie in einem media player halt.
zum abspielen haben wir mciSendString genommen, nur funktioniert die zeitanzeige über die funktion "lengt" nicht, wir wissen nicht wie es zu ahndhaben ist!

als info:

wir verwenden den c++ builder 5 von borland
os: win xp prof/home sp2
0

Anzeige



#2 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 08. März 2006 - 10:50

Guck mal, ob dir dieser Code weiterhilft:
void GetSongLength(){


  char lpszReturnString[128];
  char curr_time[128];
  int h,m,s;
  int h1,m1,s1;

  memset(lpszReturnString,'\0',sizeof(lpszReturnString));

  h=m=s=0;
  h1=m1=s1=0;

  mciSendString("status song length",lpszReturnString,128,0);
  mciSendString("status song position",curr_time,128,0);

  if(lpszReturnString){   /* Get Total time */

	 int len = atoi(lpszReturnString);
		  len =len / 1000;

	 for(int count=0;count<len;count++){

		if(s == 60) {
		   s=0;
		   m++;
		 }
		if(m == 60) {
		   m=0;
		   h++;
		 }

		 s++;

	}

  }


Quelle

Dieser Beitrag wurde von Witi bearbeitet: 08. März 2006 - 10:51

0

#3 Mitglied ist offline   DonElTomato 

  • Gruppe: aktive Mitglieder
  • Beiträge: 311
  • Beigetreten: 04. Oktober 05
  • Reputation: 0

geschrieben 08. März 2006 - 15:29

Was ist denn ein "Medi - Player" ?
0

#4 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 08. März 2006 - 15:36

*seufz*
Füg mal ein a an...
0

#5 Mitglied ist offline   Fabi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.958
  • Beigetreten: 30. August 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 08. März 2006 - 16:32

@DonElTomatoDonElTomato:na ein media player du witzbold :8):!

@witi: danke werde es gleich ausprobieren!

weiß vielleicht jemand noch ne lösungfür das problem mit der länge der dateinamen?
0

#6 Mitglied ist offline   stefanra 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.208
  • Beigetreten: 13. September 04
  • Reputation: 1

geschrieben 08. März 2006 - 16:38

Woher kommt denn die Beschränkung auf "TitelN.mp3"? Normalerweise können doch die Titel länger sein?!
0

#7 Mitglied ist offline   Fabi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.958
  • Beigetreten: 30. August 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 08. März 2006 - 16:42

das weiß ich leider nicht, habe schon in nem anderen forum nachgefragt, da wurde mir was von getshortpathname gesagt, versteh ich aber nicht! heir mal der link! viele dank für die hilfe bis hier her!

Forum

mein username ist gewup!

Dieser Beitrag wurde von F$KiNg bearbeitet: 08. März 2006 - 16:43

0

#8 Mitglied ist offline   Fabi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.958
  • Beigetreten: 30. August 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 08. März 2006 - 19:29

kann mir denn niemand helfen?

wäre echt wichtig!!!
0

#9 Mitglied ist offline   gewup 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 08. März 06
  • Reputation: 0

geschrieben 09. März 2006 - 16:36

@Witi:

Hi ich mach auch bei diesem Projekt mit.

ich möchte die Länge des Liedes in einem editfeld ausgeben => suche Funktion die mir die Länge des Liedes zurückliefert. Mit der Länge möchte ich dann weiterarbeten. Sprich Inkrementieren und Dekrementiere (Funktionen) bereits geschrieben. Hab in einem anderen Forum rausgefunden, dass man die Länge des Liedes mit

mciSendString ("status" + /*Pfad des Liedes*/ + "length" , ? , ? , ? )


Was nun aber anstelle der Fragezeichen eingetragen werden muss weiß ich leider nicht.
die MSDN Homepage hilt mir leider auch nicht weiter.

Falls du mir helfen kannst wäre ich dir sehr dankbar.

gruß gewup
0

#10 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 09. März 2006 - 16:39

Zitat

lpszReturnString

Pointer to a buffer that receives return information. If no return information is needed, this parameter can be NULL.

cchReturn

Size, in characters, of the return buffer specified by the lpszReturnString parameter.

hwndCallback

Handle to a callback window if the "notify" flag was specified in the command string.

Quelle

Ist klar? Oder braucht ihr nähere Infos?

Dieser Beitrag wurde von Witi bearbeitet: 09. März 2006 - 16:40

0

#11 Mitglied ist offline   gewup 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 08. März 06
  • Reputation: 0

geschrieben 09. März 2006 - 17:04

Ich habe mit dem mal was geschrieben aber der Compiler meldet immer einen E2188 Ausdruckssyntax

Hier der Code:

	 String Laenge;
	 mciSendString( "status mp3Datei length", Laenge, strlen( const char* str ), NULL );


Weiß aber leider nicht was falsch ist.
gruß gewup

@stefanra

das liegt daran, das mciSendString mit langen Begriffen arbeitet, darum wird

GetShortPathName(?, ?, ?)

benötigt.

gruß gewup
0

#12 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 09. März 2006 - 18:41

haste es mal mit einem char-array probiert, so wie es in dem Beispiel ist, das ich weiter oben gepostet habe?
Etwa so:
int size = 128;
char laenge[size];
mciSendString("status mp3Datei length", laenge, size, 0);

0

#13 Mitglied ist offline   gewup 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 08. März 06
  • Reputation: 0

geschrieben 09. März 2006 - 22:19

Tut mir leid, das tut aber leider auch nicht. das ganze prog spinnt dann und liefert nichts sinnvolles zurück.
hab mitlerweile die lösoung aber gefunden...

leider in VB

http://www.vbarchiv....v/tipp_557.html

vielleicht versteht du das ja,

ich nämlich nicht.

wär echt toll :)
0

#14 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 10. März 2006 - 12:00

Aah...ich glaube ich habe es jetzt verstanden.
Ich versuche das mal nach c zu übersetzen (ohne Gewähr) :)

//fileName ist der Name der Datei
char laenge[128];
memset(laenge, '\0', sizeof(laenge));
mciSendString("open " + fileName + " type MPEGVideo alias mp3Datei", 0, 0, 0);
// möglichweise auch so:
// mciSendString("open " + fileName + " alias mp3Datei", 0, 0, 0);
mciSendString("status mp3Datei length", laenge, 128, 0);

Dieser Beitrag wurde von Witi bearbeitet: 10. März 2006 - 12:00

0

#15 Mitglied ist offline   gewup 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 08. März 06
  • Reputation: 0

geschrieben 10. März 2006 - 15:57

Hi

ich habs mal versucht, aber es funktioniert necht ganz so,

die funktion gibt immer nur 256 zurück.

hier ist men code

  OpenDialog1->Filter= "Musik Dateien|*.wav; *.mp3; *.wma"; // Funktion um
  OpenDialog1->Execute();								   // über Opendiaog
  edtLied->Text=OpenDialog1->FileName;					  // MP3 einlesen

  //AnsiString a="status "+(edtLied->Text)+" length";
  //AnsiString a="open "+(edtLied->Text)+" type MPEGVideo alias mp3Datei";
	AnsiString a="open "+(edtLied->Text)+" alias mp3Datei";


	char laenge[128];
	memset(laenge, '\0', sizeof(laenge));
	edtZeit->Text=mciSendString( a.c_str() , 0, 0, 0);
  //edtZeit->Text=mciSendString(a.c_str(), laenge, 128, 0);
  //mciSendString("open " + fileName + " alias mp3Datei", 0, 0, 0);


Die ist füge einfach noch einen Button, eine opendialog komponente und 2 editfelder auf die Form und versuch es mal selber, vielleicht findest du ja heraus, was falsch ist. je nach funktion das richtige als kommentar stellen und das andere nicht als Kommentar

gruß gewup

Manchmal liefert sie auch 263 ja nach funktion ?
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0