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.
Mira la documentación de DirectSound (viene en el SDK de DirectX). Hay una función llamada SetPosition o algo así.
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.
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
Las funciones son SetCurrentPosition() y GetCurrentPosition() que son miembros de DirectSoundSecondaryBuffer8.
Salu2...
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.
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.