AVISO: Cualquier pregunta que no cumpla ninguno de estos criterios podrá ser borrada sin previo aviso.

Hola,

antes que nada agradecer la ayuda que dais a todos los novatos como yo!

La cuestión es la siguiente, he creado una table view y quiero que para cada celda reproduzca unos sonidos. Lo que tengo ahora es que al pulsar una de las celdas reproduce los sonidos a la vez, y yo quiero que los reproduzca por separado, primero uno, luego otro, luego otro, y el ultimo. (son 4)

Como puedo obligarle a ordenar estas acciones??

Muchas gracias!

preguntado 20 Abr '12, 13:37

adecarvajal's gravatar image

adecarvajal
607714


-1

El metodo que buscas tiene que ser el siguiente

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

En el con el valor indexPath.row puedes saber que cell estas presionando y asi asociarlo al archivo de sonido por modulo 4 ( se me ocurre asi por encima) XD.

OJO si tienes sections en tu tableView entonces hay que comparar tambien el valor indexPath.section

enlace permanente

respondido 21 Abr '12, 00:41

NSStudent's gravatar image

NSStudent
3691210

editó 21 Abr '12, 00:46

Si, ese método ya lo conozco, lo que no se hacer es lo que tu describes como "archivo de sonido por modulo"... Alguna idea sobre eso?

(21 Abr '12, 00:47) adecarvajal
-1

Voy a suponer que el código de sonido ya lo sabes y que solo tienes 4 celdas si no es así explicame un poco mejor el tipo de celda que tienes y te ayudo

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
        int modulo= indexPath.row %4;
        if (modulo==0){
        // cargas aqui el sonido que quieres que se reproduzca en la primera celda
        }else if (modulo==1){
        // el sonido para la segunda
       }else if(modulo==2){
        // para la tercera
       }else if(modulo==3){
        // para la cuarta   
       }
  }

}

Despues de tu respuesta creo que lo que quieres es encadenar sonidos uno detras de otro, he hecho una prueba y tengo el siguiente codigo para enlazar secuencialmente, seguro que no es el mejor pero funciona por ahora.

-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag {

    if (player==self.reproductor) {

        [player stop];
        [self.reproductordos play];
    }
    if (player==self.reproductordos) {

        [player stop];
        [self.reproductortres play];
    }
    if (player== self.reproductortres){
        [player stop];
        [self.reproductorcuatro play];
    }

}
enlace permanente

respondido 21 Abr '12, 01:05

NSStudent's gravatar image

NSStudent
3691210

editó 21 Abr '12, 11:42

Lo que quiero es que al pulsar, por ejemplo La primera celda, reproduzca varios sonidos. He conseguido reproducirlos a la vez, pero quiero que lo haga de manera ordenada.

(21 Abr '12, 01:15) adecarvajal

ahhhh ok , unas preguntas mas, ¿estás cargando con AudioToolbox o lo estas haciendo con AVFoundation? ¿No puedes conectar los audios mediante un programa de sonido en una sola pista y a lo mejor es mas comodo?

en avfundation tienes un metodo para saber cuando una cancion ha terminado correctamente sin errores y en el puedes lanzar la siguiente cancion el metodo es ...

-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag

(21 Abr '12, 11:11) NSStudent

creo que con lo que he editado en la respuesta te debería de valer para lo que buscas hacer.

cuando pulsan la celda generas el play del reproductor primero y este metodo se encarga de prepararlo. recuerda en el viewDidLoad hacer a todos tus AVAudioPlayer un prepareToPlay para que se guarde en buffer el sonido y así no tener parones entre un sonido y otro.

Otra cosa, a cada reproductor que tengas de audio tienes que delegarlo para poder utilizar este metodo.

(21 Abr '12, 11:45) NSStudent
Tu respuesta:
Activar/desactivar vista previa

Sobre esta pregunta

Etiquetas de la pregunta:

×24
×14
×7
×2
×1

Pregunta realizada el: 20 Abr '12, 13:37

Pregunta visitada: 436 veces

Última modificación: 21 Abr '12, 12:24

Seguir esta pregunta

Por Email:

Una vez que entres podrás suscribirte desde aquí para recibir actualizaciones

Por RSS:

Respuestas

Respuestas y Comentarios

Realizar Donación