devlog [naru design]

プログラミングやテクニカルな内容の覚え書き。

現在Flashで製作中のiPhoneアプリでは、BGMを流そうとしています。

BGM自体は鳴らすことはできたのですが、iPhoneの着信/サイレントスイッチの状態が反映されないことに気が付きました(夜中にサイレントモードにしてアプリを動かしたら、大きな音でBGMが鳴り始めてビックリしました…)。

どうやら、現バージョンのAIRランタイムでは、着信/サイレントスイッチの動作はサポートされていないようです(2012.8.21現在、手元のFlashCS6ではAIR3.2)。

Googleで検索し、StickSportsさんが公開しているANE-Silent-Switchを見つけました。iOS向けの着信/サイレントスイッチの状態を反映させるAIR Native Extensionです。

サイレントモードを実現するまでにたどった手順を記しておきます。

1. 作業用のフォルダ作成

作業用のフォルダを作成し、その中にSilentSwitch.aneファイルをコピーしておきます(SilentSwitch.aneはアーカイブのbinフォルダ内にありました)。

2. flaファイル作成

Flashを起動し、スタートアップスクリーンで「新規作成」の「AIR for iOS」をクリック。flaファイルを先ほどの作業用のフォルダに保存します。

3. ActionScriptの設定

ライブラリパスのタブを開いてaneファイルを追加します。

4. AIR for iOSの設定

iOS SDKにチェックを入れて、iOS SDKのパスを入力します。

私の環境では、iOS SDKのパスは以下のとおりでした。

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk

追記 2012/10/19
XCodeを4.5.1にアップデートしたら、SDKがiOS6用けになりました。パスは以下の通り。

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk

ここまでで、ANEに関する設定は終了です。
引き続き、着信/サイレントスイッチの状態が反映されることを確認できるサンプルアプリを作成します。

5. アプリの作成

画面上にムービークリップが1つ配置されたシンプルなコンテンツです。画面上のムービークリップをクリックすると、着信/サイレントスイッチの状態が反映されるようにします。

音声ファイル(hogehoge.mp3)はライブラリに追加して、ASリンケージ(SoundBGM)を設定しておきます。

あとは、いつも通りのFlashでiPhoneアプリをパブリッシュする手順です。
ipaファイルが作成できたら、iTunes経由で実機に転送し動作を確認しましょう。

最初、ANEの設定の手順4「AIR for iOSの設定」をしていませんでした。
ipaファイルの生成はエラーもなく問題なく終了、実機に転送後、アプリ自体は起動したのですが、ムービークリップをタップした瞬間にアプリが終了してしまいました。

手順4を行ったものは、問題なく動作しているようです。

参考にさせていただいたページ

iOS : Flash Proでネイティブ拡張(ANE)に挑戦 —– MUSHIKAGO APPS MEMO

ありがとうございました

Pocket

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Trackback URL: