0
Мне нужно воспроизвести несколько звуковых файлов. У меня есть следующий код:Как играть в несколько звуков?
мой .h
класс
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
#import <AudioToolbox/AudioToolbox.h>
@interface ViewController : UIViewController {
AVAudioPlayer *musicPlayer;
}
- (IBAction)music1:(id)sender;
- (IBAction)music2:(id)sender;
- (IBAction)music3:(id)sender;
- (IBAction)music4:(id)sender;
- (IBAction)music5:(id)sender;
@end
.m
мой файл
#import "ViewController.h"
@interface ViewController()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)music1:(id)sender {
if(musicPlayer.isPlaying)
{
[musicPlayer pause];
return;
}
if(musicPlayer == nil)
{
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"music1" ofType:@"wav" ]];
musicPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
}
[musicPlayer play];
}
- (IBAction) music2:(id)sender {
if(musicPlayer.isPlaying)
{
[musicPlayer pause];
return;
}
if(musicPlayer == nil)
{
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"music2" ofType:@"wav" ]];
musicPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
}
[musicPlayer play];
}
- (IBAction) music3:(id)sender {
if(musicPlayer.isPlaying)
{
[musicPlayer pause];
return;
}
if(musicPlayer == nil)
{
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"music3" ofType:@"wav" ]];
musicPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
}
[musicPlayer play];
}
- (IBAction) music4:(id)sender {
if(musicPlayer.isPlaying)
{
[musicPlayer pause];
return;
}
if(musicPlayer == nil)
{
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"music4" ofType:@"wav" ]];
musicPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
}
[musicPlayer play];
}
- (IBAction) music5:(id)sender {
if(musicPlayer.isPlaying)
{
[musicPlayer pause];
return;
}
if(musicPlayer == nil)
{
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"music5" ofType:@"wav" ]];
musicPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
}
[musicPlayer play];
}
@end
но этот код не работает: только один музыкальный файл воспроизводится. Другого файла нет.
Также есть пример:
Музыка1 воспроизведение. Я нажимаю кнопку Music2 -> Music1 end, Music2 start.
Как мне написать код?
Большое спасибо ..
И тогда вы в конечном итоге создание 25 аудиоплееров. Я уверен, что вы имели в виду: «Вам нужно пять« AVAudioPlayer's: по одному для каждого звука ». –
Спасибо вам большое. Я пропустил обзор :) Каков второй ответ на мой вопрос? Также есть пример: Музыка1 играет. Я нажимаю кнопку Music2 -> Music1 end, Music2 start. Как мне написать код? – Axapta
Ищите мой обновленный ответ. Это не лучшее решение, но он должен работать –