AIR for Androidでの効果音の再生方法
復習の意味も込めてAIR for Androidでの効果音の再生をしてみました。
今回、ポイントとなるのがAIRファイルに音声ファイルを埋め込みすることです。
当初、便利で簡単なsoundEffectでの埋め込もうとしたのですがうまく行かなかったため自前で埋込をします。
↑できました。assetsフォルダをsrcフォルダに以降すればOKです。下部にソース書いてます。
ソースはこちら。画像をクリックすると音声が再生されます。
<?xml version="1.0" encoding="utf-8"?> <s:View xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" title="SoundPlay" xmlns:mx="library://ns.adobe.com/flex/mx"> <fx:Script> <![CDATA[ import mx.core.SoundAsset; [Embed(source="../assets/music.mp3")] public var Song:Class; public var mySong:SoundAsset = new Song() as SoundAsset; protected function button1_clickHandler(event:MouseEvent):void { mySong.play(); } ]]> </fx:Script> <fx:Declarations> </fx:Declarations> <s:Button label="効果音再生" click="button1_clickHandler(event)" verticalCenter="0" horizontalCenter="0"/> </s:View>
soundEffectなソースはこちら
<?xml version="1.0" encoding="utf-8"?> <s:View xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" title="SoundPlay" xmlns:mx="library://ns.adobe.com/flex/mx"> <fx:Declarations> <mx:SoundEffect id="mySoundEffect" target="{this}" useDuration="false" source="@Embed('assets/music.mp3')"/> </fx:Declarations> <s:Button label="効果音再生" click="{mySoundEffect.play();}"/> </s:View>
しっかし、ボタンでのclickイベント作成の際、button1_clickHandlerっと保管・作成してくれるのがありがたい。