2011-03-25 104 views
2

我試圖構建一個基於Codebass播放器的Android AIR應用程序(http://codebass.net/2010/09/01/codebass-streaming-radio-player/ )Flex(AIR)Android Shoutcast應用程序問題

這不是爲了android而設計的,當在桌面上(和flashbuilder模擬器中)運行它時,actionscript工作的很好,但是在設備上它不會播放聲音。它似乎是初始化聲音,因爲您可以調整媒體音量,但流拒絕播放。

我不確定它是否加載了流或與它有問題的播放。

流讀取功能:

public function load(source:String, restarting:Boolean = false):void { 
     this.source = source; 

     if (sound) { 
      sound.close(); 
      sound = null; 
     } 
     songLoaded = false; 
     dispatchEvent(new Event("updateDuration")); 
     stop(); 

     if(sound) { 
      sound.removeEventListener(Event.OPEN, onSoundLoaded); 
      sound.removeEventListener(Event.OPEN, onRestartSoundLoaded); 
      sound.removeEventListener(IOErrorEvent.IO_ERROR, onSoundLoadedError); 
     } 
     sound = new Sound(); 

     if (!restarting) { 
      sound.addEventListener(Event.OPEN, onSoundLoaded, false, 0, true); 
      streamRestartCount = 0; 
     } else { 
      sound.addEventListener(Event.OPEN, onRestartSoundLoaded, false, 0, true); 
     } 

     sound.addEventListener(IOErrorEvent.IO_ERROR, onSoundLoadedError, false, 0, true); 

     var ur:URLRequest = new URLRequest(source); 
     sound.load(ur); 
    } 

流播放功能:

public function play():void { 
     if (stopped) { 
      SoundMixer.stopAll() 
      soundChannel = sound.play(0); 
     } else { 
      SoundMixer.stopAll() 
      soundChannel = sound.play(lastPosition);  
     } 
     stopped = false; 
     // if we've previously set a volume, use the transform again 
     if (volumeTransform) { 
      trace("set vol: " + volumeTransform.volume); 
      soundChannel.soundTransform = volumeTransform; 
     } 
     heartBeat.start(); 
    } 

有一些簡單的我失蹤?或者是沒有希望,不要從頭開始編寫android skd的空白代碼?

回答

0

該代碼應該工作。很可能,您在Android的清單中缺少必需的權限。當你安裝應用程序時,它應該問你是否要安裝並給你一個應用程序所做的事情列表。它應該說'連接到互聯網'。如果那不在那裏,你不會走得太遠。

對於這項工作,打開清單文件,其中包括這它:

<android> 
    <manifestAdditions> 
     <manifest> 
      <data> 
       <![CDATA[ 
        <uses-permission android:name="android.permission.INTERNET" /> 
       ]]> 
      </data> 
     </manifest> 
    </manifestAdditions> 
</android> 

這會給你訪問互聯網。如果您仍然遇到問題,請嘗試登錄debug the application as mentioned in my blog post

+0

清單許可是存在的,我也不在辦公室有wifi。我會在今晚嘗試家中的調試器。 – Rick 2011-03-26 02:08:45

0

自從android第一次發佈air2以來,這個manifestAddition標籤已經發生了一些變化。
所以你應該在

<?xml version="1.0" encoding="UTF-8"?> 
<application xmlns="http://ns.adobe.com/air/application/2.5"> 
    <id>...</id> 
    <filename>...</filename> 
    <name>...</name> 
    <versionNumber>v...</versionNumber> 
    <initialWindow> 
     <content></content> 
     <visible>true</visible> 
     <fullScreen>...</fullScreen> 
     <autoOrients>true</autoOrients> 
     <width>480</width> 
     <height>800</height> 
    </initialWindow> 
    <!--choose the appropriates separated by space--> 
    <supportedProfiles>mobileDevice desktop</supportedProfiles> 
    <android> 
     <manifestAdditions> 
      <![CDATA[ 
       <manifest android:installLocation='auto'> 
        <uses-permission android:name="android.permission.INTERNET" /> 
        <!--for playing sounds you don't need special permissions--> 
        <supports-screens android:normalScreens="true"/> 
        <uses-feature android:required="true" android:name="android.hardware.touchscreen.multitouch"/> 
        <application android:enabled="true"> 
         <activity>...</activity> 
        </application> 
       </manifest> 
      ]]> 
     </manifestAdditions> 
    </android> 

    <icon> 
     <image48x48>icon48x48.png</image48x48> 
     <image72x72>icon72x72.png</image72x72> 
    </icon> 
</application> 

一種形式,你可以在corlan的博客閱讀更多關於它寫:About AIR Applications and Android Permissions
瞭解更多關於在官方網站上目前的2.6空氣釋放:Adobe AIR

相關問題