2016-04-13 13 views
0

私はメディアでタッチイベントを再生したい。 私のアプリケーションで4ボタンがあります。 1番目の指で1stボタンをクリックした後、button1でmusic1を再生したい。 2番目の指ですぐにボタン2をクリックし、button2でmusic2を再生したい(まだ1番目の指を離していない)。 3番目の指を使ってボタン3を直ちにクリックして、3番目のボタン(まだ1番目の指がリリースされていない& 2番目の指)でmusic3を再生したい。 これはどのように実装できますか? 私はこれについて考えていません。 私を助けてください。ピアノのようなタッチイベントで同時に複数のメディアを再生

私はAVAudioPlayerを使用して音楽を再生する方法しか知りません。

ありがとうございます。

答えて

0

このコードは私のために働いています。 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. 
} 
関連する問題