Не слышно звука Android Симулятор Mac - PullRequest
1 голос
/ 18 ноября 2011

Я не слышу звук в симуляторе Android на моем Mac.Иногда, очень мало времени, я слышу это.Я даю вам свой код моего Sound Manager.Но я думаю, что его проблемы с конфигурацией

Я копирую код со страницы, на которой они сказали, что это работает.И я уже пробовал около 5 разных кодов, и ни один не работает.Мой звук в WAV-игре: 100 тыс. Меню, 800 тыс.

Спасибо

    import java.util.HashMap;

import android.content.Context;
import android.media.AudioManager;
import android.media.SoundPool;


public class SoundManager {

    static private SoundManager _instance;
    private static SoundPool mSoundPool; 
    private static HashMap<Integer, Integer> mSoundPoolMap; 
    private static AudioManager  mAudioManager;
    private static Context mContext;

    private SoundManager()
    {   
    }

    /**
     * Requests the instance of the Sound Manager and creates it
     * if it does not exist.
     * 
     * @return Returns the single instance of the SoundManager
     */
    static synchronized public SoundManager getInstance() 
    {
        if (_instance == null) 
          _instance = new SoundManager();
        return _instance;
     }

    /**
     * Initialises the storage for the sounds
     * 
     * @param theContext The Application context
     */
    public static  void initSounds(Context theContext) 
    { 
         mContext = theContext;
         mSoundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);
         mSoundPoolMap = new HashMap<Integer, Integer>(); 
         mAudioManager = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE);        
    } 

    /**
     * Add a new Sound to the SoundPool
     * 
     * @param Index - The Sound Index for Retrieval
     * @param SoundID - The Android ID for the Sound asset.
     */
    public static void addSound(int Index,int SoundID)
    {
        mSoundPoolMap.put(Index, mSoundPool.load(mContext, SoundID, 1));
    }

    /**
     * Loads the various sound assets
     * Currently hard coded but could easily be changed to be flexible.
     */
    public static void loadSounds()
    {
        mSoundPoolMap.put(1, mSoundPool.load(mContext, R.raw.menu, 1));
        mSoundPoolMap.put(2, mSoundPool.load(mContext, R.raw.game, 1));     
    }

    /**
     * Plays a Sound
     * 
     * @param index - The Index of the Sound to be played
     * @param speed - The Speed to play not, not currently used but included for compatibility
     */
    public static void playSound(int index,float speed) 
    {       
             float streamVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC); 
             streamVolume = streamVolume / mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
             mSoundPool.play(mSoundPoolMap.get(index), streamVolume, streamVolume, 1, 0, speed); 
    }

    /**
     * Stop a Sound
     * @param index - index of the sound to be stopped
     */
    public static void stopSound(int index)
    {
        mSoundPool.stop(mSoundPoolMap.get(index));
    }

    public static void cleanup()
    {
        mSoundPool.release();
        mSoundPool = null;
        mSoundPoolMap.clear();
        mAudioManager.unloadSoundEffects();
        _instance = null;

    }


}

Ответы [ 2 ]

1 голос
/ 16 мая 2012

По сути, вы должны установить флаг в настройках конфигурации, чтобы указать, какой тип звука выводить и какое устройство. Это боль. Я написал об этом здесь:

http://www.banane.com/2012/01/11/joy-of-android-playing-sound/

Это сработало на моем старом MacBook. Просто обновился до Mac Air и решение изменилось, не уверен, но -аудио это решение сейчас. Я опубликую здесь, когда у меня получится.

0 голосов
/ 03 февраля 2012

Я решил это,

Просто переустановите все затмение и SDK.Я пытаюсь на другом компьютере и работает нормально.Тот же код

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...