0

mp3ファイルを再生する必要のあるアプリを作成しています。その問題については、他の投稿から読んでいる指示に従ってAVAudioPlayerを使用しています。しかし、私の問題は、コード(以下に添付)がiOSシミュレーターで機能することですが、iPhoneで使用しようとすると、機能しません...この問題について誰かが助けてくれることを願っています。

ファイル.h:

#import "UIKit/UIKit.h"
#import "AVFoundation/AVFoundation.h"

@interface ViewController : UIViewController <AVAudioPlayerDelegate>

@property (strong, nonatomic) AVAudioPlayer *player;

@end

ファイル.m:

#import "ViewController.h"

@implementation ViewController
@synthesize player;

- (void)viewDidLoad
{
   [super viewDidLoad];

   NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"beep_7" ofType:@"mp3"];
    NSLog(@"Audio path: %@", soundFilePath);

    NSError *error;
    self.player =[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:soundFilePath] error:&error];

    if (error) {
        NSLog(@"Error in audioPlayer: %@",[error localizedDescription]);
    }
    else {
        [self.player setDelegate:self];
        [self.player setNumberOfLoops:3]; //just to make sure it is playing my file several times
        self.player.volume = 1.0f;

        if([self.player prepareToPlay]) //It is always ready to play
            NSLog(@"It is ready to play");
        else
            NSLog(@"It is NOT ready to play ");

        if([self.player play]) //It is always playing
            NSLog(@"It should be playing");
        else
            NSLog(@"An error happened");
    }
}

-(void)audioPlayerDecodeErrorDidOccur: (AVAudioPlayer *)player error:(NSError *)error {
    NSLog(@"audioPlayerDecodeErrorDidOccur -> Error in audioPlayer: %@",[error localizedDescription]);
}
-(void)audioPlayerDidFinishPlaying: (AVAudioPlayer *)player successfully:(BOOL)flag{
    NSLog(@"audioPlayerDidFinishPlaying");
}
-(void)audioPlayerBeginInterruption:(AVAudioPlayer *)player{
    NSLog(@"audioPlayerBeginInterruption");
}
-(void)audioPlayerEndInterruption:(AVAudioPlayer *)player{
    NSLog(@"audioPlayerEndInterruption");
}

@end
4

1 に答える 1

4

デバイスではなくシミュレータでオーディオ(または画像)が機能している(表示されている)場合に最初に確認するのは、アクセスしようとしているオーディオファイルのスペルです。

Mac OSXは大文字と小文字を区別しませんが、iOSは、コードのようにスペルiMage.pngとアクセスされた画像image.pngがシミュレータに表示されますが、iPhoneには表示されないことを意味します。

もう1つ確認する必要があるのは、iPhoneの物理的なミュートボタンを誤って押してしまったことです。(先週私に起こった)

それが役に立てば幸い!

于 2013-02-27T10:02:31.333 に答える