Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 4.1.2開機音樂與動畫的代碼

Android 4.1.2開機音樂與動畫的代碼

編輯:關於Android編程

本來在android4.0.4中使用libmedia的時候采用了如下方式: [cpp]     #define SYSTEM_BOOTMUSIC_FILE "/system/media/sound.ogg"     int index;       MediaPlayer* mp = new MediaPlayer();            if((access(SYSTEM_BOOTMUSIC_FILE,F_OK))!=-1){     if (mp->setDataSource(SYSTEM_BOOTMUSIC_FILE, NULL) == NO_ERROR) {               mp->setAudioStreamType(AUDIO_STREAM_ENFORCED_AUDIBLE);               mp->prepare();             mp->setLooping(true);        }        AudioSystem::getStreamVolumeIndex(AUDIO_STREAM_ENFORCED_AUDIBLE, &index);        if (index != 0) {            mp->seekTo(0);                   mp->start();       }        }       這段代碼在4.0.4是可以用的,但到了4.1.2的時候發現getStreamVolumeIndex的接口發生了變化 該函數位於frameworks/av/media/Libmedia/AudioSystem.cpp文件內 函數原型為: [cpp]  status_t AudioSystem::getStreamVolumeIndex(audio_stream_type_t stream,                                              int *index,                                              audio_devices_t device)     所以需要修改為如下代碼:(由於開機的時候聲音為最小,所以這裡重新設置了下device的聲音大小) [cpp]   #define SYSTEM_BOOTMUSIC_FILE "/system/media/sound.ogg"   //Neo Modify   int index = 5;     audio_devices_t device;   MediaPlayer* mp = new MediaPlayer();            if((access(SYSTEM_BOOTMUSIC_FILE,F_OK))!=-1){         //printf("access audio\n");       if (mp->setDataSource(SYSTEM_BOOTMUSIC_FILE, NULL) == NO_ERROR) {             printf("setDataSource audio\n");           mp->setAudioStreamType(AUDIO_STREAM_ENFORCED_AUDIBLE);             mp->prepare();           mp->setLooping(true);         }         device = AudioSystem::getDevicesForStream(AUDIO_STREAM_ENFORCED_AUDIBLE);       printf("device = %d\n", device);       bool temp = AudioSystem::setStreamVolumeIndex(AUDIO_STREAM_ENFORCED_AUDIBLE, index, device);        //printf("index = %d,temp = %d\n", index,temp);       temp = AudioSystem::getStreamVolumeIndex(AUDIO_STREAM_ENFORCED_AUDIBLE, &index, device);       //printf("index = %d,temp = %d\n", index,temp);       if (index != 0){           //printf("index!=0\n");           mp->seekTo(0);            mp->start();       }                        }   //End     上面只是起到了播放音樂的作用,那麼要同步,只需要將代碼中的 [cpp]   mp->start();     移至你需要播放音樂的位置即可。  
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved