0

そのため、ビューへの接続を使用して、シェイクモーションでサウンドファイルを開始しようとしています。私のコードはエラー No visible @interface for 'AVAudioPlayer' declares the selector 'playsound'. をスローしています。

これはViewController.mです

#import "aniMateViewController.h"
#import <AVFoundation/AVFoundation.h>
#import <AudioToolbox/AudioToolbox.h>

@interface aniMateViewController ()

@end

@implementation aniMateViewController
@synthesize playSound;


-(BOOL)canBecomeFirstResponder
{
    return YES;

}

-(void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
    if (motion == UIEventSubtypeMotionShake)
        {   NSLog(@"Device started shaking!");
            NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/play.mp3", [[NSBundle mainBundle] resourcePath]]];
            NSError *error;
            audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
            audioPlayer.numberOfLoops = 0;
            [audioPlayer playSound];

        }
}

hファイルはこちら

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


@interface aniMateViewController : UIViewController
{
    AVAudioPlayer *audioPlayer;
    IBOutlet UIView *start;
}

@property (weak, nonatomic) IBOutlet UIView *playSound;


@end
4

1 に答える 1

0

この add AVAudioPlayer デリゲートをインターフェイスで使用します。

  -(void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event
  {
    if (motion == UIEventSubtypeMotionShake)
    {   
      NSLog(@"Device started shaking!");

       NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/play.mp3", [[NSBundle mainBundle] resourcePath]]];
      audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:NULL];
      audioPlayer.delegate = self;
       [url release];

      [audioPlayer prepareToPlay];
      [audioPlayer play];
   }
 }
于 2012-06-29T05:43:35.497 に答える