Flash:iPhone着信/サイレントスイッチを有効にする
2012/08/21
category: Flash | tag: ActionScript, ANE, iOS | no comments
現在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の設定
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)を設定しておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
package { import flash.display.MovieClip; import flash.events.MouseEvent; import com.sticksports.nativeExtensions.SilentSwitch; import flash.media.Sound; public class SilentSwitchTest extends MovieClip { public function SilentSwitchTest() { var sound:Sound = new SoundBGM(); sound.play(0, 999); this.enableButton.addEventListener(MouseEvent.CLICK, onClickButton); } function onClickButton(e:MouseEvent):void { SilentSwitch.apply(); } } } |
あとは、いつも通りのFlashでiPhoneアプリをパブリッシュする手順です。
ipaファイルが作成できたら、iTunes経由で実機に転送し動作を確認しましょう。
最初、ANEの設定の手順4「AIR for iOSの設定」をしていませんでした。
ipaファイルの生成はエラーもなく問題なく終了、実機に転送後、アプリ自体は起動したのですが、ムービークリップをタップした瞬間にアプリが終了してしまいました。
手順4を行ったものは、問題なく動作しているようです。
参考にさせていただいたページ
iOS : Flash Proでネイティブ拡張(ANE)に挑戦 —– MUSHIKAGO APPS MEMO
ありがとうございました
コメントを残す
コメントを投稿するにはログインしてください。