Soundpool Soundpool Soundpool в разных томахAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Soundpool Soundpool Soundpool в разных томах

Сообщение Anonymous »

У меня очень странная проблема, которую я не могу понять. У меня есть звуковая точка, инициализированная одним звуком (очень короткий звук «щелкнуть»). В моем обработке OnClick для моих кнопок активности я делаю простой SoundManager.PlaySound (1, 0); , который смотрит звук в хэшмапе и воспроизводит звук. Тот же самый playsound вызов используется для каждого клика. Он всегда играет звук и не ошибся. Громкость нажатия звука изменяется от нажатия кнопки на нажмите кнопку. Я могу нажать один раз, и это звучит слабым. Я ударил в ответ, а затем нажимаю снова, и это звучит громко. Я не могу найти никакой рифмы или причины для этого. Я подумал, что, может быть, это было запутано из -за нагрузки (я знаю, что это безумие, но я здесь в растерянности), поэтому я даже запустил звук в отдельной ветке. Все еще тот же результат. Я подумал, может быть, это было из -за инициализации звукового менеджера во второй раз, поэтому я добавил чек, чтобы убедиться, что этого не произойдет .... тот же результат. < /P>

i использовали класс Sound Manager, который я нашел несколько мест в Интернете. Это ниже. < /P>

public class SoundManager
{

static private SoundManager _instance;
private static SoundPool mSoundPool;
private static HashMap mSoundPoolMap;
private static AudioManager mAudioManager;
private static Context mContext;

public static boolean isInitialized = false;

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
*/
@SuppressLint("UseSparseArrays")
public static void initSounds(Context theContext)
{
mContext = theContext;
mSoundPool = new SoundPool(4, AudioManager.STREAM_NOTIFICATION, 0);
mSoundPoolMap = new HashMap();
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 hardcoded but could easily be changed to be flexible.
*/
public static void loadSounds()
{
if (!isInitialized)
{
mSoundPoolMap.put(1, mSoundPool.load(mContext, R.raw.click, 1));
isInitialized = true;
}

}

/**
* 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_NOTIFICATION);
streamVolume = streamVolume / mAudioManager.getStreamMaxVolume(AudioManager.STREAM_NOTIFICATION);
mSoundPool.play(mSoundPoolMap.get(index), 1, 1, 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));
}

/**
* Deallocates the resources and Instance of SoundManager
*/
public static void cleanup()
{
mSoundPool.release();
mSoundPool = null;
mSoundPoolMap.clear();
mAudioManager.unloadSoundEffects();
_instance = null;

}

}
< /code>

Вы можете увидеть в методе playsound < /strong>, я имею жесткий кодированный громкость для левого и правого канала до максимального значения 1. Это не так Помогите. Громкость звуков все еще колеблется. Если это было как -то связано с потоком. Похоже, что это не так, как показывает то же поведение. Чтобы посмотреть, помогло ли это. Без изменений. И полный файл воспроизводится. < /P>

Может ли это быть связано с оборудованием? Единственное испытательное устройство, которое я использовал, - это старый HTC невероятный. Есть какие -либо известные проблемы с этим оборудованием? Кто -нибудь еще испытал это?

Подробнее здесь: https://stackoverflow.com/questions/122 ... nt-volumes
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как обновить конструктор SoundPool для использования SoundPool.Builder?
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Как обновить конструктор SoundPool для использования SoundPool.Builder?
    Anonymous » » в форуме Android
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Понимание доступа к файлам в файловой системе Databricks (DBFS) и томах с помощью Python и Spark
    Anonymous » » в форуме Python
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Воспроизведение звука небольшой продолжительности с помощью MediaPlayer или SoundPool при нажатии кнопки.
    Anonymous » » в форуме Android
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Как выпустить Soundpool на Android
    Anonymous » » в форуме Android
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»