Воспроизведение файлов MP3 с iPhone SDK
Какой самый простой способ воспроизведения музыкального файла, такого как Mp3 с паузой botton?
очень простая кнопка воспроизведения, а другая кнопка приостанавливает эту музыку..
вы можете написать этот код!
Ответы
Ответ 1
Это коды для запрошенных действий,
appSoundPlayer является свойством AVAudioPlayer, объявленного в h файле. Также этот пример воспроизводит песню в папке ресурса.
#pragma mark -
#pragma mark *play*
- (IBAction) playaction {
NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"songname" ofType:@"mp3"];
NSURL *newURL = [[NSURL alloc] initFileURLWithPath: soundFilePath];
self.soundFileURL = newURL;
[newURL release];
[[AVAudioSession sharedInstance] setDelegate: self];
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient error: nil];
// Registers the audio route change listener callback function
AudioSessionAddPropertyListener (
kAudioSessionProperty_AudioRouteChange,
audioRouteChangeListenerCallback,
self
);
// Activates the audio session.
NSError *activationError = nil;
[[AVAudioSession sharedInstance] setActive: YES error: &activationError];
AVAudioPlayer *newPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL: soundFileURL error: nil];
self.appSoundPlayer = newPlayer;
[newPlayer release];
[appSoundPlayer prepareToPlay];
[appSoundPlayer setVolume: 1.0];
[appSoundPlayer setDelegate: self];
[appSoundPlayer play];
[stopbutton setEnabled:YES];
[playbutton setEnabled: NO];
playbutton.hidden=YES;
pausebutton.hidden =NO;
}//playbutton touch up inside
#pragma mark -
#pragma mark *pause*
-(IBAction)pauseaction {
[appSoundPlayer pause];
pausebutton.hidden = YES;
resumebutton.hidden = NO;
}//pausebutton touch up inside
#pragma mark -
#pragma mark *resume*
-(IBAction)resumeaction{
[appSoundPlayer prepareToPlay];
[appSoundPlayer setVolume:1.0];
[appSoundPlayer setDelegate: self];
[appSoundPlayer play];
playbutton.hidden=YES;
resumebutton.hidden =YES;
pausebutton.hidden = NO;
}//resumebutton touch up inside
#pragma mark -
#pragma mark *stop*
-(IBAction)stopaction{
[appSoundPlayer stop];
[playbutton setEnabled:YES];
[stopbutton setEnabled:NO];
playbutton.hidden=NO;
resumebutton.hidden =YES;
pausebutton.hidden = YES;
}//stopbutton touch up inside
Ответ 2
Для коротких звуков или когда MP3 не воспроизводится на предлагаемом коде, вы всегда можете использовать:
SystemSoundID soundID;
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/sound.mp3", [[NSBundle mainBundle] resourcePath]]];
AudioServicesCreateSystemSoundID((CFURLRef)url, &soundID);
AudioServicesPlaySystemSound (soundID);
Не забудьте добавить:
#import <AudioToolbox/AudioToolbox.h>
Ответ 3
well здесь является хорошим учебником.
Тема
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/audiofile.mp3", [[NSBundle mainBundle] resourcePath]]];
NSError *error;
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
audioPlayer.numberOfLoops = -1;
[audioPlayer play];
и когда вы хотите приостановить,
[audioPlayer pause];
надеюсь, что это поможет.
Ответ 4
Я боюсь, что ответ уже не работает в iOS 7 и выше. Вам нужно будет использовать следующий код:
в файле заголовка (.h)
Чтобы обрабатывать методы делегата, например, когда воспроизведение звука закончилось, звуковой файл PillayerDidFinishPlaying:, наследует от AVAudioPlayerDelegate.
@property (nonatomic, strong) AVAudioPlayer *player;
в файле реализации (.m)
NSString *soundFilePath = [[NSBundle mainBundle] pathForResource: resourceName
ofType: @"mp3"];
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: soundFilePath];
AVAudioPlayer *newPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL: fileURL
error: nil];
_player = newPlayer;
[_player prepareToPlay];
[_player setDelegate: self];
[_player play];
Ответ 5
Мне нравится простой код, и вот мое решение: (Не забудьте добавить кнопку переключателя, чтобы получить музыку. Удачи)
#import "ViewController.h"
#import <AVFoundation/AVFoundation.h>
@interface ViewController ()
{
NSURL* bgURL;
AVAudioPlayer* bgPlayer;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
bgURL = [[NSURL alloc] initFileURLWithPath: [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"mp3"]];
bgPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:bgURL error:nil];
}
#pragma mark AVAudioPlayer
- (IBAction)toggleMusic:(UISwitch*)sender {
NSLog(@"togging music %s", sender.on ? "on" : "off");
if (bgPlayer) {
if (sender.on) {
[bgPlayer play];
}
else {
[bgPlayer stop];
}
}
}
Ответ 6
Документация Apple здесь должна иметь все, что вам нужно знать.
Ответ 7
oalTouch пример кода на веб-сайте разработчика Apple iOS делает то, что вы хотите, и готов к запуску.
Он также показывает, как тестировать, если другое приложение (например, ipod) уже играет в файл, что удобно, если вы хотите, чтобы ваши пользователи могли слушать свою собственную музыку, а не вашу.
Ответ 8
DIRAC API является бесплатным и довольно простым в использовании.
Мы использовали его в своем приложении для говорящего робота http://itunes.apple.com/us/app/daidai/id484833168, и мне было удивительно, как ему удается изменять скорость и шаг голоса
http://www.dspdimension.com/download/