タイトルの通り、ボタンを押したときに音を入れることができましたが、同じボタンを押したときにメインの UIImageView にも画像の変更を追加する方法がないか疑問に思っていました。「playFaceOfAudioType」メソッドが提示されている場所に画像コードを貼り付ける方法はありますか?
これまでの私のコードは次のとおりです。
#import "FourthViewController.h"
@interface FourthViewController ()
@end
@implementation FourthViewController
@synthesize audioPlayer;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (IBAction)facesAudioAction:(id)sender {
UIButton *btn=(UIButton *)sender;
[self playFaceAudioOfType:btn.tag];//Tag for button is set on the xib..
}
-(void)playFaceAudioOfType:(int)type{
[self stopAudio];
NSString *sound=@"";
switch (type) {
case 1:
sound=@"1";
break;
case 2:
sound=@"2";
break;
case 3:
sound=@"3";
break;
case 4:
sound=@"4";
break;
case 5:
sound=@"5";
break;
default:
break;
}
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
pathForResource:sound
ofType:@"mp3"]];
NSError *error;
if(url){
audioPlayer = [[AVAudioPlayer alloc]
initWithContentsOfURL:url
error:&error];
if (error)
{
NSLog(@"Error in audioPlayer: %@",
[error localizedDescription]);
} else {
audioPlayer.delegate = self;
[audioPlayer prepareToPlay];
}
[audioPlayer play];
}
}
-(void)stopAudio{
if(audioPlayer && [audioPlayer isPlaying]){
[audioPlayer stop];
audioPlayer=nil;
}
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
通常、これは if / else if タイプのアプローチを実行することで行われますが、switch ステートメント ビットと一緒に含めることができるかどうか疑問に思っていました。