3

iPhoneアプリでオーディオファイルを再生しようとしています.このコードを使用しました

#import <AVFoundation/AVFoundation.h>

 NSBundle *bundle = [NSBundle mainBundle];
    NSString *musicPath = [bundle pathForResource:@"audioSample" ofType:@"mp3"];
    NSURL *musicURL = [NSURL fileURLWithPath:musicPath];
    NSError *error= [NSError errorWithDomain:@"Domain" code:0 userInfo:nil];

    AVAudioPlayer *aplayer= [[AVAudioPlayer alloc] initWithContentsOfURL:musicURL error:&error];
    aplayer.delegate = self;
    [aplayer play];

しかし、このアプリを実行すると、このエラーが発生します。誰かがこれを解決するのを手伝ってくれますか?このエラーが発生している理由がわかりません。

System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugIn.bundle/Contents/MacOS/AudioIPCPlugIn:  dlopen(/System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugIn.bundle/Contents/MacOS/AudioIPCPlugIn, 262): Symbol not found: ___CFObjCIsCollectable
  Referenced from: /System/Library/Frameworks/Security.framework/Versions/A/Security
  Expected in: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation
 in /System/Library/Frameworks/Security.framework/Versions/A/Security
2012-08-03 10:12:07.330 SampleAudioCode[591:12003] Error loading /Library/Audio/Plug-Ins/HAL/Digidesign CoreAudio.plugin/Contents/MacOS/Digidesign CoreAudio:  dlopen(/Library/Audio/Plug-Ins/HAL/Digidesign CoreAudio.plugin/Contents/MacOS/Digidesign CoreAudio, 262): Symbol not found: ___CFObjCIsCollectable
  Referenced from: /System/Library/Frameworks/Security.framework/Versions/A/Security
  Expected in: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation
 in /System/Library/Frameworks/Security.framework/Versions/A/Security
2012-08-03 10:12:07.330 SampleAudioCode[591:12003] Cannot find function pointer NewDigiCoreAudioPlugIn for factory B8A063B5-2F3D-444A-88CB-D0B8F1B22042 in CFBundle/CFPlugIn 0xdc50f50 </Library/Audio/Plug-Ins/HAL/Digidesign CoreAudio.plugin> (bundle, not loaded)

ご回答ありがとうございます..

4

4 に答える 4

1

これは、iOS シミュレータのみを使用している場合、AVAudio フレームワークに問題があるようです。実際のハードウェア (私の場合は iPad 2 と iPad 1) でテストしても、これらと同じエラーは発生しません。

このエラーは、システム フレームワークからの単なるコンソール ノイズです。無視してください。影響はありません。アプリがクラッシュしたり、再生に失敗したりする場合、本当の理由は別の場所にあります。

and please also add CoreFoundation framwork.
于 2012-08-03T06:40:32.940 に答える
0

まず、AVFoundation フレームワークを追加する必要があります

そのためには、このステップに従ってください

  • プロジェクトの [グループとファイル] パネルで [ターゲット] ブランチを展開します。
  • Control キーを押しながらクリックするか、AudioPlayer アイテムを右クリックします。
  • [追加] > [既存のフレームワーク…] を選択します</li>
  • Linked Librariesの下の左下にある+ボタンをクリックします
  • AVFoundation.framework を選択し、[追加] をクリックします。
  • AVFoundation.framework は、Linked Libraries の下に表示されます。窓を閉めて

.h ファイルにこのフレームワークを含め、avaudio プレーヤーのインスタンスを作成します

#import <AVFoundation/AVFoundation.h>

そしてインターフェースセクションで

AVAudioPlayer *audioPlayer;

今あなたの.Mファイルで.mp3ファイルを再生したい場所でこのコードを使用してください。

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

NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
audioPlayer.numberOfLoops = -1;

if (audioPlayer == nil)
    NSLog([error description]);             
else 
    [audioPlayer play];
于 2012-08-03T05:16:43.667 に答える
0

これはAudioPlayerに役立つと思います...

-(void)play
{
    [audioPlayer stop];

    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%@",[soundArry objectAtIndex:pageNo.currentPage]] ofType:@"mp3"]]; 

    audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
    [audioPlayer play];


}

soundArry は My SoundArray です。pageNo は My PageControl です。

于 2012-08-03T05:41:13.997 に答える
0

これはオーディオ再生に役立つと思います:

NSString *filePath=[[NSBundle mainBundle] pathForResource:@"audiofile" ofType:@"mp3"]; 

NSURL *url = [NSURL fileURLWithPath:filePath];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
audioPlayer.numberOfLoops = -1;
if (audioPlayer == nil)
      NSLog([error description]);               
else 
     [audioPlayer play];
于 2012-08-03T05:47:06.617 に答える