Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Seccionar Con Directx

Iniciado por sebastianarroyo, 15 de Septiembre de 2005, 12:49:47 AM

« anterior - próximo »

sebastianarroyo

 Hola, mi nombre es sebastian y tengo la siguiente inquietud.
Nesecito reproducir archivos mp3 y wav con directx.
en estos momentos estoy utilizando directshow, pero la idea es poder seleccionar por cual de las dos placas de auduo que tiene mi Pc quiero que se escuche el audio.
Si alguienm tiene alguna ayuda se lo agradezco.
Un Agrazo, Sebastian !

Ray

 No he usado DirectShow pero en DirectX para poder elegir el dispositivo hay que  pasarle el identificador al crear dicho objeto, que previamente hay que obtener con una función de enumeración o con alguna función específica, si ese identificador es NULL toma el dispositivo por defecto, que ahora no estoy seguro pero puede que sea el predeterminado o favorito que tienes en windows.

Un agrazo para ti también.

sebastianarroyo

 ´Te agradezco por responder, yo tengo esta rutina para saber los dispositivos de audio instalados.
'Creamos un objeto DirectX7
Dim DirectX As New DirectX7

Dim DDEnum As DirectSoundEnum
Dim nDispositivos As Long, nDispositivo As Long
Dim Cadena As String

' Usamos el método GetDDEnum para iniciar la enumeración
Set DDEnum = DirectX.GetDSEnum
' un bucle para recorrer todos los dispositivos
For nDispositivo = 1 To DDEnum.GetCount
' recuperando la descripción de cada uno de ellos
List1.AddItem DDEnum.GetDescription(nDispositivo)
Next

End Sub
Comentame si sabes hacer lo que me comentaste en tu respuesta anterior.
Nuevamente Gracias.-

Ray

 No sabría decirte exactamente lo que tienes que hacer, tendría que mirarlo, supuestamente en la lista que recoges debe incluir los datos que describen el dispositivo, solo te interesan el nombre y el GUID (Identificador único),

lo ideal es mostrar la lista de nombres de dispositivos que has recogido en un ListBox, para poder elegir el dispositivo con el ratón en las opciones.

despues pasar el GUID que corresponda con el nombre de la misma lista.

sebastianarroyo

 Todos los nombres los estoy recojiendo en un listbox, el tema es que no se como obtener el GUID y menos poder seleccionarlo antes de la reproduccion.-
Vos tenes alguna idea ?
Sebastian !

sebastianarroyo

 El Guid ya lo consegui con esto
List2.AddItem DDEnum.GetGuid(nDispositivo)
Ahora el problema es una ves seleccionado en el list asignar esta guid a la rutina del directshow.-

Ray

 Pues de la misma forma que obtienes la descripción (el nombre en cristiano)

DDEnum.GetDescription(nDispositivo)

suponiendo que eliges el segundo de la lista (el número 1)

se debería poder hacer algo así como:

DDEnum.GetGuid(1);
DDEnum.GetDevice(1);
o algo parecido, pero no tengo ni idea, estará en la ayuda.

y pasarlo al crear el DirectSound

Edit: ok, vi tu ultimo mensaje, creo que ahí lo explico, el número debe corresponder

Ray

 Creo que ya se lo que dices, tienes que pasarlo como parámetro de la función DirectSoundCreate, seguramente lo tendrás como NULL

Es que yo soy de C++  :lol:

HRESULT WINAPI DirectSoundCreate( LPGUID lpGuid,  LPDIRECTSOUND * ppDS,  
 LPUNKNOWN * pUnkOuter  );

AK47

 Recuerda que por usar mp3 en algo tendrias que pagarles a noseque empresa :P (no se si era solo para cosas comerciales o en todos los casos).

Topper

 
CitarRecuerda que por usar mp3 en algo tendrias que pagarles a noseque empresa  (no se si era solo para cosas comerciales o en todos los casos).

Me parece que usando DirectShow no tienes que pagar licencia de uso del formato mp3 (aun siendo para aplicaciones comerciales) debido a que Microsoft ya licenció ese formato de sonido para su utilización en Windows con esa API, y por lo tanto, tú sólo aprovechas el recurso que te ofrece el sistema operativo.

Si estoy equivocado que venga dios y me replique  (twist)  

[EX3]

 
Cita de: "Topper"Me parece que usando DirectShow no tienes que pagar licencia de uso del formato mp3 (aun siendo para aplicaciones comerciales) debido a que Microsoft ya licenció ese formato de sonido para su utilización en Windows con esa API, y por lo tanto, tú sólo aprovechas el recurso que te ofrece el sistema operativo.

Si estoy equivocado que venga dios y me replique  (twist)
Arrea! es cierto esto? Con DirectShow no tendrias que pagar royalties por los MP3? Como sea cierto me quito el trabajo de tener que instalar el codec OGG para DirectShow :D

Sobre el tema del post en cuestion, creo, y no me hagais mucho caso, que estais mezclando churras con meninas. DirecShow al contrario que DirectSound no precisa de inicializacion, simplemente se inicializan los objetos que controlan el contenido de audio y video de los archivos multimedia y los objetos para controlar la reproduccion del medio, y no recuerdo ninguna funcion para especificar el dispositivo con el que se quiere reproducir algun medio (ojo, no digo que no exista pero al menos en los ejemplos del SDK para VB6 no he visto nada) lo unico que se que se podria configurar son los codecs (y tampoco lo he mirado mucho... que la documentacion de DirectShow para VB es casi nula...)

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Topper

 Una url de Microsoft con un documento acerca de Windows Media y el tema de royalties...

Windows Media

Aquí una muestra que habla de los royalties:

CitarHow can I develop Windows Media-based solutions that interoperate through standards or open specifications?
Windows Media Technologies is a platform, and third parties can develop their own plug-in solutions by using standards-based or vendor-based technologies. Windows Media Technologies supports several standards out of the box, including MPEG-4 video and H.263 for video compression and G.726, G.723.1, and MP3 for audio compression. It uses the open Advanced Streaming Format (ASF) for synchronizing and storing the compressed audio and video streams in a file. The specifications for the standard codecs can be obtained from the respective standard organizations, and the specifications for the ASF format are available publicly from the Microsoft Web site (http://www.microsoft.com/windows/windowsmedia/WM7/format/asfspec11300e.asp).
There are royalties associated with some of these technologies, and Microsoft pays the necessary royalties for shipping its implementations of the standard codecs in the Windows operating system.

sebastianarroyo

 ok, realmente me meti en un lio, en verdad no se como hacerlo,  pero el resultado tiene que ser poder escuchar un mp3 o un wav en otra placa distinta a la predeterminada-
Si conosen alguna forma con directx o algun OCX, DLL que lo pueda hacer en visual basic se lo agradezco
Saludos !!!
Sebastian.

tewe76

 (OFFTOPIC)¿Significa que se puede usar MP3 en cualquier programa que se ejecute en Windows sin pagar? No creo. Seguramente lo he entendido mal.
Tewe
www.TAPAZAPA.com : Funny and easy to play games for all ages! - Fairy Match - Brain Crash
www.LaRebelionDelBiberon.com : Experiencias de unos padres primerizos

TheAzazel

 Que alguien lo aclare porque yo pensaba que los MP3 no se podian usar asi como asi....

de todos modos...OGG rulez!






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.