Mejorar player MP3

28/02/2010 - 13:43 por ByB | Informe spam
Hola,

En Internet encontré una clase que permite leer ficheros MP3 con C#,
pero necesitaria que esta clase me pueda indicar con un boolean (por
ejemplo) si un MP3 esta siendo leido por el Player o no, y no veo bién
como hacerlo.


Gracias por su ayuda.

Aqui esta el codigo :


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace MyNamespace
{
public class Player
{
private string _command;
private bool isOpen;
[DllImport("winmm.dll")]
private static extern long mciSendString(string strCommand,
StringBuilder strReturn, int iReturnLength, IntPtr hwndCallback);

public Player()
{

}
public void Close()
{
_command = "close MediaFile";
mciSendString(_command, null, 0, IntPtr.Zero);
isOpen = false;
}

public void Open(string sFileName)
{
_command = "open \"" + sFileName + "\" type mpegvideo alias
MediaFile";
mciSendString(_command, null, 0, IntPtr.Zero);
isOpen = true;
}

public void Play(bool loop)
{
if (isOpen)
{
_command = "play MediaFile";
if (loop)
_command += " REPEAT";
mciSendString(_command, null, 0, IntPtr.Zero);
}
}
}
}

La forme des pyramides d'Egypte, nous apprend que dès la plus haute
antiquité,
les hommes avaient tendance à en faire de moins en moins.
- Anonyme -
 

Leer las respuestas

#1 hernan
28/02/2010 - 14:31 | Informe spam
In article <4b8a64e9$0$17889$, wrote:
Hola,

En Internet encontré una clase que permite leer ficheros MP3 con C#,
pero necesitaria que esta clase me pueda indicar con un boolean (por
ejemplo) si un MP3 esta siendo leido por el Player o no, y no veo bién
como hacerlo.


Gracias por su ayuda.




¿"siendo leido"?

Cuando haces el play, mciSendString() retornará sin error y sabrás que el
play está en marcha. Si al play le agregas un notify "play mediafile
notify" y agregas el handle de una ventana como el último argumento de la
función, en el wndproc() de esa ventana podrás capturar el MM_MCINOTIFY
con la indicación de que el play ha terminado (entre otros).

Si "siendo leido" significa eso mismo, bueno, mci usa una biblioteca de
e/s medio pascaloide que te deja introducir tu propio driveo del archivo
(mmioInstallIOProc / MMIOProc), así que podrías establecer exáctamente
cuándo abres, cuand cierras y cuando lees el archivo, porque deberás
hacerlo tú mismo. No creo que hables de esto...

Preguntas similares