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