3

私はiOSを初めて使用し、アプリにサウンドを追加しようとしています。プロジェクトに簡単なサウンドファイルを追加するためのいくつかのチュートリアルに従いましたが、すべて同じ結果になりました。エラーは発生しませんが、音が鳴りません。私が間違っていることについて何か考えはありますか?どんな助けでもいただければ幸いです!

- (IBAction)playSound:(id)sender {

    NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp3"];
    NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];
    NSLog(soundFilePath);

    NSError *error;
    AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL error:&error];
    player.numberOfLoops = 1; 

    [player play];

 }

**更新*** _

したがって、上記のコードで運が悪かったことはありませんでしたが、代わりにAudioToolbox Frameworkを使用して、次のコードを使用して動作させることにしました。

SystemSoundID soundID;
NSString *soundFile = [[NSBundle mainBundle]
                       pathForResource:@"test" ofType:@"mp3"];
AudioServicesCreateSystemSoundID((__bridge  CFURLRef)
                                 [NSURL fileURLWithPath:soundFile], & soundID);
AudioServicesPlaySystemSound(soundID);

誰かが私に違いを説明できますか、なぜこれが機能し、もう一方が機能しないのですか?私は何よりも興味があります。いくつかの説明が大好きです。

4

3 に答える 3

9

ついにそれを理解した。AVAudioPlayerを機能させるには、ヘッダーファイルにAVAudioPlayerのプロパティを作成する必要がありました。これが私がしたことです:

// .h file
@interface ThirdViewController : UIViewController {

    AVAudioPlayer *audioPlayer;

}
@property (nonatomic, retain) AVAudioPlayer *audioPlayer;



- (void) playSound     //method in .m file
{
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] 
                                          pathForResource:@"test" 
                                          ofType:@"mp3"]];
    NSError *error;
    audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
    [audioPlayer play];
}
于 2013-03-27T19:20:33.723 に答える
0

次のようにして、コードを簡略化します。また、test.mp3をxcodeのプロジェクトディレクトリのルートにドロップします。あなたのmp3の配置と場所は非常に重要です。また、音量が上がっていて、バイブレーションがデバイスから離れていて、ミュートされていないことを確認してください。

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                     pathForResource:@"test"
                                     ofType:@"mp3"]];

AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc]
                              initWithContentsOfURL:url
                              error:nil];
[audioPlayer play];
于 2013-03-25T19:13:57.147 に答える
0

必ずquartz.h、またはオーディオプレーヤーをサポートする特定のフレームワークをインストールしてください。もう一度確認してください。

しばらく前に同じ問題が発生し、フレームワークを正しくインストールする必要があります。

于 2013-05-30T14:25:54.123 に答える