0

iPhone用のXcodeを使用してObjectiveCでmp3ファイルを再生しようとしています。

viewDidLoadの場合:

 NSURL *mySoundURL = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/mySound.mp3", [[NSBundle mainBundle] resourcePath]]];

NSError *myError;
mySound = [[AVAudioPlayer alloc] fileURLWithPath:heartBeatURL error:&myError];
[mySound play];

ここで提案を見つけました:AVAudioPlayerを使用してサウンドを再生しているときに問題が発生しましたか?

しかし、それは私にとってはうまくいきませんでした、それはより多くの問題を生成するだけでした。

プログラムが起動すると、これが出力に表示され、プログラムがクラッシュします。

アーキテクチャi386の未定義のシンボル: "_ OBJC_CLASS _ $ _ AVAudioPlayer"、参照元:SecondViewController.oのobjc-class-ref ld:アーキテクチャi386のシンボルが見つかりませんcollect2:ldが1つの終了ステータスを返しました

私はここで何が間違っているのですか?

4

2 に答える 2

1

プロジェクトのターゲットに AVFoundation.framework を追加しますLink Binary With Libraries

次に、.h にインポートします。

#import <AVFoundation/AVFoundation.h>

@interface ViewController : UIViewController <AVAudioPlayerDelegate> {

    AVAudioPlayer *player;
    }
@property (strong,nonatomic) AVAudioPlayer *player;

@end

あなたの.mで:

    @synthesize player;


    NSString* resourcePath = [[NSBundle mainBundle] resourcePath];
    resourcePath = [resourcePath stringByAppendingString:@"/mySound.mp3"];
    NSLog(@"Path to play: %@", resourcePath);
    NSError* err;

    //Initialize our player pointing to the path to our resource
    player = [[AVAudioPlayer alloc] initWithContentsOfURL:
              [NSURL fileURLWithPath:resourcePath] error:&err];

    if( err ){
        //bail!
        NSLog(@"Failed with reason: %@", [err localizedDescription]);
    }
    else{
        //set our delegate and begin playback
        player.delegate = self;
        [player play];

    }
于 2012-06-27T06:12:13.400 に答える
1

AVFoundation フレームワークをアプリにリンクしていないようです。

最近の十分な xcode を仮定します。

  1. 左側のプロジェクト ナビゲーターでプロジェクトを選択します
  2. ターゲットを選択
  3. ビルド フェーズの選択
  4. AVFoundation.framework を Link Binary With Libraries フェーズに追加します

比較のために、実際に動作する AVAudioPlayer コードを次に示します。

NSURL *mySoundURL = [NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"BadTouch" ofType:@"mp3"]];
NSError *myError;
self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:mySoundURL error:&myError];
[self.player play];
于 2012-06-26T22:07:50.880 に答える