domingo, 30 de diciembre de 2012

Crear un Reproductor de audio en XCode.

Crear un Reproductor de audio en XCode.


Crear un simple reproductor de audio en el que podemos hacer Play, Pause y Stop, y nos muestra una etiqueta con algunos datos del archivo de audio que estamos reproduciendo.


Código del Archivo ViewController.h:

//
//  ViewController.h
//  audio
//
//  Created by Francisco on 28/12/12.
//  Copyright (c) 2012 Francisco. All rights reserved.
//

#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h> //Importamos el Framework para poder usar los metodos de AVAdioPlayer


@interface ViewController : UIViewController <AVAudioPlayerDelegate>

//Creamos un objeto llamado reproductor que heredada de la clase AVAudioPlayer.
@property (nonatomic,strong)AVAudioPlayer *reproductor;

//Creamos un objeto etiqueta  que hereda de la clase UILabel, donde mostraremos datos de la reproducccion.
@property (strong, nonatomic) IBOutlet UILabel *etiqueta;

- (IBAction)play:(id)sender;
- (IBAction)pause:(id)sender;
- (IBAction)stop:(id)sender;
- (IBAction)cambioVolumen:(id)sender;

@end




Código Archivo ViewController.m:


//
//  ViewController.m
//  audio
//
//  Created by Francisco on 28/12/12.
//  Copyright (c) 2012 Francisco. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
@synthesize reproductor,etiqueta;
- (void)viewDidLoad
{
    [super viewDidLoad];
    //Creamos el reproductor y le damos la ruta donde tenemos el archivo de audio
    NSError *error;
    NSString *ruta =[[NSBundle mainBundle]pathForResource:@"Adele" ofType:@"mp3"];
    NSURL *url =[[NSURL alloc]initFileURLWithPath:ruta];
    self.reproductor=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:&error];
    self.reproductor.pan =0;// Es para darle el Balance, altavoz derecho o altavoz izquerdo, -1 Izquerda, 0 se escucha igual en los dos, y  1 solo la derecha.
    self.reproductor.enableRate=YES;
    self.reproductor.rate=1;// Es para la velocidad de reproduccion va de 0.5 a 2.
    self.reproductor.numberOfLoops =-1;//Para determinar el numero de repeticiones del archivo.Si ponemos un signo negativo se repite indefinidamente y con un numero positivo ejemplo 3, se repite tres veces.
    
    self.reproductor.volume=1;//Maneja el volumen y su valor es entre 0 y 1.
    [self.reproductor prepareToPlay];//Aqui le estamos diciendo que se prepare para reproducir sonido y asi es mas rapido cuando pulsamos play.
    
    
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];

}

- (IBAction)play:(id)sender {
    [self.reproductor play];
}

- (IBAction)pause:(id)sender {
    
      etiqueta.text = [[NSString alloc]initWithFormat:@"Duracion:  %f, TiempoTranscurrido: %f Volumen: %f",self.reproductor.duration,self.reproductor.currentTime,self.reproductor.volume];
    [self.reproductor pause];
    
    
}

- (IBAction)stop:(id)sender {
    
  
    [self.reproductor stop];
}

- (IBAction)cambioVolumen:(id)sender {
    
    self.reproductor.volume=((UISlider *)sender).value;
}
-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
    
    //Con este metodo podemos saber si nuestro audio a finalizado y si a llegado al final del archivo de audio y hacer algo, tambien tenemos una bandera"flag" con un valor Booleano que nos da YES si el audio a terminado y NO si no a finalizado.
}
@end