Перейти к содержанию
Fire Monkey от А до Я
  • 0

Проигрывание звуков в формате .mp3 по таймеру


c_breaker

Вопрос

В приложении есть коллекция медиаплееров, в каждый экземпляр медиаплеера загружен определенный файл.

 

По таймеру проигрываются те или иные файлы.

 

Проблема: не все звуки проигрываются. метод play вызывается, но звука нет. закономерности не обнаружил - просто какие-то съедаются.

 

Если кто-то сталкивался с подобной проблемой, или знает, в чем дело - проконсультируйте.

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
CurrentTime обнуляете?
Например:
 MediaPlayer1.CurrentTime := 0;
 MediaPlayer1.Play;
 
И еще для информации, mp3 на iOS не проигрываются вроде как.
 
Сорян.. mp3 отлично проигрывается) а вот AAC как раз таки нет, странно... фаза луны совсем не та походу)
Изменено пользователем zairkz
Ссылка на комментарий
  • 0

android

тот же код под виндой работает как и предполагалось.

 

currenttime обнуляю.

begin
  Logger.Log(Format('-->>Enter TSoundBank.PlaySound(SoundType(%d))',[Ord(SoundType)]));
  if not FSounds.TryGetValue(SoundType, mp) then
    raise Exception.Create('Cannot find sound of such type : TSoundTypes('+ IntToStr(Ord(SoundType)) + ')');
  case mp.State of
    TMediaState.Unavailable:
      raise Exception.Create('Sound of such type : TSoundTypes('+ IntToStr(Ord(SoundType)) + ') is UNAVAILABLE!') ;
    TMediaState.Playing: begin
      Logger.Log(Format('     mp.State = Playing',[Ord(SoundType)]));
      mp.Stop;
    end;
  end;
  mp.CurrentTime := 0;
  mp.Play;
  Logger.Log(Format('<<--Exit TSoundBank.PlaySound(SoundType(%d))',[Ord(SoundType)]));
end;

в метод входит и замечательно выходит, вероятность возникновения при этом звука - пока не определена)

Ссылка на комментарий
  • 0

Может кому поможет - проблема решилась использованием андроидовского SoundPool:

 

создание:

 

     FSoundPool := TJSoundPool.JavaClass.init(10, TJAudioManager.JavaClass.STREAM_MUSIC,0);

 

добавление звуков:

 

    FSoundPool.load(StringToJString(FileName),1);

 

проигрывание:

 

    FSoundPool.play(i,1,1,0,0,1);

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...