• 締切済み

Swiftについて教えてください

マイクから音を検知したいと思い、 http://blog.koogawa.com/entry/2016/04/17/133052 の記事を参考にさせていただいています self.startUpdatingVolume()で呼び出すメソッドをサンプルと同じように定義したのですが、たくさんのエラーが出て、解決方法が分からず困っています。 var dataFormat = AudioStreamBasicDescription( mSampleRate: 44100.0, mFormatID: kAudioFormatLinearPCM, mFormatFlags: AudioFormatFlags(kLinearPCMFormatFlagIsBigEndian | kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked), mBytesPerPacket: 2, mFramesPerPacket: 1, mBytesPerFrame: 2, mChannelsPerFrame: 1, mBitsPerChannel: 16, mReserved: 0) のところで Cannot find an initializer for type 'AudioStreamBasicDescription' that accepts an argument list of type '(mSampleRate: Double, mFormatID: Int, mFormatFlags: UInt32, mBytesPerPacket: Int, mFramesPerPacket: Int, mBytesPerFrame: Int, mChannelsPerFrame: Int, mBitsPerChannel: Int, mReserved: Int)' エラーの内容を調べて、引数リストを受け付ける初期化メソッドは['AudioStreamBasicDescription' には見つかりません。ということは分かったのですが、Core Audioについて理解が不十分なところが多いので、解決方法が分かりません。解決方法を教えてください、よろしくお願いします。

みんなの回答

  • koogawa
  • ベストアンサー率0% (0/0)
回答No.2

他の方も仰っている通り、お使いの Xcode バージョン(7.3など)を教えて頂けると回答しやすくなると思います。また、可能であればプロジェクトの "Deployment Target" も添えて頂けるとさらに良いです(画像を添付しました)。

dkong
質問者

お礼

回答ありがとうございます。マイクから音を検知したいと思いサイトを参考にさせていただいています。

dkong
質問者

補足

Xcode バージョン6.4 Deployment Target8.0 です。 Xcode バージョン7.2を使い、Deployment Target8.0にすると質問させていただいた箇所のエラーは消えました。

回答No.1

そのAudioStreamBasicDescriptionの定義コードを私の環境(Xcode7.3環境)にコピペしてみましたが、特にエラーは出ません。 以前から古いXcode環境を使用されていたかと思うのですが、現在お使いのXcodeのバージョンはいくつですか? もしかすると古いXcode(古いSDK)だとそのイニシャライザがまだ定義されておらず使えないのかもしれません。 もしそうであれば、 http://qiita.com/syuhei1985/items/4404f1360863ba8a06ac とかを参考に var dataFormat = AudioStreamBasicDescription() dataFormat.mSampleRate = 44100.00 dataFormat.mFormatID = kAudioFormatLinearPCM dataFormat.mFormatFlags = kLinearPCMFormatFlagIsBigEndian | kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked dataFormat.mBytesPerPacket = 2 dataFormat.mFramesPerPacket = 1 dataFormat.mBytesPerFrame = 2 dataFormat.mChannelsPerFrame = 1 dataFormat.mBitsPerChannel = 16 と、パラメータなしでAudioStreamBasicDescriptionを生成し、プロパティを1個ずつ初期化すればうまくいくかもしれません。 可能ならそろそろ最新のXcodeに移行した方がネットで解説されている情報を利用しやすいと思います。 ただし、Swiftのバージョンも変わる可能性がありますので、その場合、言語仕様の変更点がいろいろあり、これまで正常にビルドできていたコードがいくつかビルドエラーになる可能性があります。それを修正する余裕のある時に実施することをお勧めします。

dkong
質問者

お礼

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

dkong
質問者

補足

Xcode バージョン6.4です。 Xcode バージョン7.2を使うと質問させていただいた箇所のエラーは消えました。Xcode バージョン7.3で試してみます。

関連するQ&A

専門家に質問してみよう