サウンドを再生する:iPhoneアプリ開発雑記帳iPhoneアプリ開発雑記帳iPhoneアプリ開発に関する備忘録です。junツイートiPhoneアプリ内に短い効果音のようなものを入れたい場合のサンプルコードです。プロジェクトに追加します。4.xからちょっと複雑になりました。Librariesの+ボタンをクリックしてAudioToolbox.frameworkを追加します。続いて、音を鳴らすためのサウンドIDを定義し、音を鳴らしたい部分にサウンド再生の記述を行います。具体的には、projectnameViewController.mに以下の記述を追加します。(tapSoundID);CFRelease(cfFileName);CFRelease(str);free(myBuffer);}この例では、rに0か1がランダムでセットされますので、sound_0.aifまたはsound_1.aifが再生されます。playSound;を定義しておきましょう。4.2ではNSObjectとCFObjectの変換ができずエラーが発生してしまいます。Foundation)は自動メモリ管理の対象外となるためのようです。&tapSoundID);この例ですと、3行目の(CFURLRef)の部分でエラーとなります。95,661B)サンプルでは動作を確認しやすいようにIBActionとしてplaySoundをボタンアクションに割り当ててあります。サウンドファイルは含まれていませんので、sound_0.aifとsound_1.aifをプロジェクトに設定の上、ご確認ください。12:21こんにちは。音のランダム再生のコードを探していて辿り着きました。castの警告が出現してしまい効果音が鳴らないです。よろしければ、解決方法を教えてもらえないでしょうか?よろしくお願いします。19:40手元にこれを書いたときに組んだコードが無いので、まだ再現できていませんが、型が一致しないポインタからの代入ですので、変数rの扱い方に間違いがあるのかもしれません。“sound_1”;のような形では解決できないでしょうか。11:31いろいろと試してはいるのですが・・・。上記のplaySoundの中身をviewDidLoadに書いた時は一応音は出るのですが、ランダムで再生されずにsound_0だけが鳴る感じです。18:52失礼しました。決定的な間違いが一カ所ありました。これでは落ちてしまう上に、同じ音しか出ないという現象を確認しました。メモリ周りの問題かと思いますので、もう少し追ってみます。CF周り、あまり得意じゃないので、、申し訳ありません。すると、ARCを使わずにhttp://developer.apple.com/library/ios/#samplecode/SysSound/Introduction/Intro.htmlの方法(他サイトでよく紹介されている方法)を使った方が良いかもです。13:24ちょっと強引ですが書き換えました。cfMutableStringにsound_を設定しておき、rをcfStringに変換したものをAppendしています。Append周りはAppleのサンプルソースをそのまま使っています。14:30上記コードにて試してみた所、playSound内でコードを書くと音が出なく、viewDidLoad内にコードを実装すると同じ音が出るという、同じ状態でした。1の場合はsound_0が再生されるみたいです。10:35その現象がこちらでは再現しないんですよね。didLoadに書くということは、一度鳴って終わりですよね。1の挙動についても不思議ですので、NSLogなどで出力結果を確認してみてください。念のため、こちらで動作しているサンプルコードを追加しておきました。17:55サンプルコード、ありがとうございます。サンプルを元になんとかランダムで再生させることができました。本当にありがとうございます!結果として音を出すことには成功したのですが、ダメだった過程を追記しておきます。WORLDだったのですが、playSound内にコードを使った場合は結局再生されることがなかったです。(tapSoundID);をIBAction内に入れた時両方とも、同一の音のみ再生されるという感じでした(コンソールでのログは正常に動いていました)。最後にサンプルコードと同じように、直接IBActionにコードを実装すると、ランダムで再生ができました。文字を打ち込めるだけのシンプルなコードだったので、何が原因だったのか不思議です。無事にランダム再生が作れました。ご教授いただき本当にありがとうございました。13:09ありがとうございます。コメントをキャンセルメールアドレスが公開されることはありません。WordPress.。