Воспроизведение нескольких медиа одновременно при касании, например, на фортепиано.

Я хочу воспроизводить мультимедиа при касании. В моем приложении есть 4 кнопки. Когда пользователь нажимает на 1-ю кнопку с помощью 1-го пальца, он хочет начать воспроизведение музыки1 на кнопке1. Немедленно нажмите на кнопку 2, используя 2-й палец, затем хотите начать воспроизведение музыки 2 на кнопке 2 (пользователь все еще не отпустил свой 1-й палец). Немедленно нажмите на кнопку 3, используя 3-й палец, затем хотите начать воспроизведение музыки 3 на кнопке 3 (все еще пользователь не отпустил свой 1-й палец и 2-й палец). Как я могу реализовать это? Я понятия не имею об этом. Помогите мне, пожалуйста.

Я умею только проигрывать музыку с помощью AVAudioPlayer.

заранее спасибо


person Monika Patel    schedule 13.04.2016    source источник


Ответы (1)


Этот код работает для меня. ViewController.h

#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
#import <AudioToolbox/AudioServices.h>

@interface ViewController : UIViewController
{
    NSString *filePath;
}
@property(strong,nonatomic) AVAudioPlayer *playerAudio1;
@property(strong,nonatomic) AVAudioPlayer *playerAudio2;
@property(strong,nonatomic) AVAudioPlayer *playerAudio3;
@property(strong,nonatomic) AVAudioPlayer *playerAudio4;
-(IBAction)btnDownload:(id)sender;
-(IBAction)btn1_DownAction:(id)sender;
-(IBAction)btn2_DownAction:(id)sender;
-(IBAction)btn3_DownAction:(id)sender;
-(IBAction)btn4_DownAction:(id)sender;
-(IBAction)btn_Action:(id)sender;

@end

ViewController.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.
}

-(IBAction)btnDownload:(id)sender
{
    NSString *urlToDownload = @"http://leocan.co/Salon/images/album/videos/b.mp3";

    filePath= [appObj downloadFile:urlToDownload filename:@"myAudio.mp3"];
}

-(IBAction)btn1_DownAction:(id)sender
{
    NSString *soundFile;
    soundFile = [[NSBundle mainBundle] pathForResource:@"demo1" ofType:@"mp3"];
    NSURL *fileURL = [NSURL fileURLWithPath:soundFile];
    self.playerAudio1 = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
    [[AVAudioSession sharedInstance] setActive: YES error: nil];
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    self.playerAudio1.numberOfLoops = -1;
    self.playerAudio1.volume=1;
    [self.playerAudio1 play];
    NSLog(@"hold Down");

}

-(IBAction)btn2_DownAction:(id)sender
{
    NSString *soundFile;
    soundFile = [[NSBundle mainBundle] pathForResource:@"demo2" ofType:@"mp3"];
    NSURL *fileURL = [NSURL fileURLWithPath:soundFile];
    self.playerAudio2 = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
    [[AVAudioSession sharedInstance] setActive: YES error: nil];
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    self.playerAudio2.numberOfLoops = -1;
    self.playerAudio2.volume=1;
    [self.playerAudio2 play];
    NSLog(@"hold Down");
    }

-(IBAction)btn3_DownAction:(id)sender
{
    NSString *soundFile;
    soundFile = [[NSBundle mainBundle] pathForResource:@"demo3" ofType:@"mp3"];
    NSURL *fileURL = [NSURL fileURLWithPath:soundFile];
    self.playerAudio3 = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
    [[AVAudioSession sharedInstance] setActive: YES error: nil];
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    self.playerAudio3.numberOfLoops = -1;
    self.playerAudio3.volume=1;
    [self.playerAudio3 play];
    NSLog(@"hold Down");

}

-(IBAction)btn4_DownAction:(id)sender
{
    NSString *soundFile;
    soundFile = [[NSBundle mainBundle] pathForResource:@"demo6" ofType:@"mp3"];
    NSURL *fileURL = [NSURL fileURLWithPath:soundFile];
    self.playerAudio4 = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
    [[AVAudioSession sharedInstance] setActive: YES error: nil];
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    self.playerAudio4.numberOfLoops = -1;
    self.playerAudio4.volume=1;
    [self.playerAudio4 play];
    NSLog(@"hold Down");
  }

-(IBAction)btn_Action:(id)sender
{
    NSLog(@"hold release");
    if([sender tag]==1)
    {
        [self.playerAudio1 stop];
    }
    else if([sender tag]==2)
    {
        [self.playerAudio2 stop];
    }
    else if([sender tag]==3)
    {
        [self.playerAudio3 stop];
    }
    else
    {
        [self.playerAudio4 stop];
    }
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
person Monika Patel    schedule 14.04.2016