Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





modificar posicion inicial para reproducir wav DirectSound

Iniciado por djskonex, 08 de Marzo de 2007, 06:38:52 PM

« anterior - próximo »

djskonex

Hola a todos,

estoy programando un minieditor de audio con directsound y streaming, y necesito saber como poder poner como posicion inicial del sonido otra posicion cualquiera, con el fin de implementar una funcion que permita reproducir/modificar una parte del sonido seleccionada por el usuario, si pudieseis ayudarme con esto os estaria muy agradecido.

AK47

Mira la documentación de DirectSound (viene en el SDK de DirectX). Hay una función llamada SetPosition o algo así.

djskonex

ya mire an el SDK de DirectX, pero la funcion que mencionas es para los buffers de sonido 3D para indicar la posicion del oyente, yo lo que necesito es, que la lectura del archivo de sonido para rellenar el buffer comience en un punto distinto al inicial y termine en otro distinto al final.

gracias de todas formas.

AK47

En efecto, SetPosition() o algo asi son para bufferes 3D, pero hay una función que hace lo que tu pides en la interfaz LPDIRECTSOUNDBUFFER8

[EX3]

Las funciones son SetCurrentPosition() y GetCurrentPosition() que son miembros de DirectSoundSecondaryBuffer8.

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

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

djskonex

Muchas gracias por la informacion, pero no es exactamente lo que ando buscando, ya que esas funciones, por lo que se, son para controlar el buffer, con lo que solo podria controlar una porcion del sonido de un wav de menor tamaño que el buffer, yo necesito reproducir porciones de ficheros wav de cualquier tamaño, con lo cual necesitaria empezar a leer el fichero en una determinada posicion del mismo.

Gracias de todas formas.

Saludos.

marcode

Pues tú mismo lo has dicho, tienes que leer del fichero en una posición determinada y copiar al buffer lo que te interese. Con fseek, SetFilePointer o lo que sea que uses.
size=9]afortunadamente siempre ha habido alguien dispuesto a reinventar la rueda, de lo contrario seguiríamos usando un disco de piedra con un agujero.[/size]






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.