2017-09-23 13 views
1

Objective-Cを使用してサウンドレコーダー/プレーヤーに波形プロット機能を追加したいと思います。私は素晴らしいフレームワークのようなAudioKit 4を発見し、audiokit.ioのWebサイトからAudioKit & AudioKitUIフレームワークをインポートしました。私はiOS10.0ターゲットでXcode 9を使用しています。残念ながら、私はAKAudioPlayerインスタンスを作成するために、例えば...私のObjective-CのコードでAudioKitからいくつかのクラスを初期化することはできません、私が使用します。私は客観的で迅速なフレームワークを使用した上で、アップルのドキュメントから理解して何からObjective-CでAudioKitを使用

AKAudioFile *audioFile = [[AKAudioFile alloc] initForReading: myURL error:&error]; 
AKAudioPlayer* playerAK = [[AKAudioPlayer alloc] initWithFile:audioFile looping:NO deferBuffering:false completionHandler:nil]; 

-C、私はinitWithFile: looping: deferBuffering: completionHandler:がAudioKitの枠組みの中でAKAudioPlayer.swiftで定義された迅速な初期化コールからのObjective-Cで良い訳だと思った:

public init(file: AKAudioFile, 
       looping: Bool = false, 
       deferBuffering: Bool = false, 
       completionHandler: AKCallback? = nil) throws... 

AKAudioFileオブジェクトのインスタンス化は、どちらも警告もエラーが発生します。しかしAKAudioPlayerのインスタンス化では、コンパイラはセレクタがセレクタを宣言しないというエラーを返します。initWithFile: looping: deferBuffering: completionHandler:

私は間違っていますか?おかげでcmdをクリックすることにより、ヘルプ

答えて

0

ためAKAudioPlayerあなたは、インターフェイスがObjective-Cのにさらさ見ることができ、利用可能な唯一のinitがある:ファイルのロードに関連する

- (nonnull instancetype)init SWIFT_UNAVAILABLE; 

プロパティは次のようになります。

@property (nonatomic, readonly, strong) AKAudioFile * _Nonnull audioFile; 
@property (nonatomic, readonly, copy) NSString * _Nonnull path; 

第1回目は読んでいるので、後者は1回だけ撮影します。だからあなたは次のようになります:

@import AudioKit; 

- (void)inSomeMethod { 
    AKAudioPlayer *player = [[AKAudioplayer alloc] init]; 
    player.path = @"/myPath/To/audioFile"; 
} 
+0

ありがとうございます。しかし、AKAudioPlayer *プレーヤー= [[AVAudioplayer alloc] init];同じコンパイラエラーを作成します...(AVAudioPlayerではなくAKAudioPlayerです) – Denis

+0

申し訳ありません、私はそれを編集しました。私は最近、 'AVAudioPlayer'を毎日使っていて、それは私の頭に残っています。とにかく、[[AKAudioPlayer alloc] init] 'aka' [AKAudioPlayer new] 'をインスタンス化できますか? Btwには、レポhttps://github.com/AudioKit/AudioKit/tree/master/Examples/iOS/HelloObjectiveCのサンプルがあります。おそらくそれはあなたを始めます。 –

1

AudioKitはいくつかのバグを修正するために4.0.1としてリリースされました。だから私の質問は時代遅れです!

関連する問題