2013-12-04 7 views
2

Мне было интересно, может ли кто-нибудь дать мне совет поиграть с середины песни на мобильном телефоне с помощью soundmanager2. Мне нужно, чтобы он работал на Android 4+ и IOS6 и IOS7. У меня есть решение, но это не идеально.Soundmanager2, играя песни с другой точки старта на мобильном телефоне

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

Я также пробовал то же самое решение с чистым звуком HTML5 с использованием .currentTime, однако у меня есть точно такая же проблема с аудио HTML5, и поскольку soundmanager2 использует html5, у меня есть чувство, что проблема связана.

Мое решение до сих пор:

Я обнаружил, что лучший способ, чтобы убедиться, что песня играет с правильной начальной точкой является изменением позиции после песни начинает играть и не перед тем песня начинает воспроизводиться. Однако нежелательным эффектом этого является то, что песня ненадолго воспроизводится до смены позиции в. Я пытаюсь установить том на 0 и на 100 для «маскировки», но некоторые мобильные устройства игнорируют это. Решение отлично работает на рабочем столе, но это недостаточно.

В SoundManger событие onplay не запускается, когда песня воспроизводится, так как она запускается немедленно, когда я вызываю .play(); , Для этого мне нужно использовать soundManager.onPosition ('scAudio', 500, function ..), и я нашел 500, чтобы быть адекватным, чтобы быть поднятым в большинстве мест. Если я сделаю это меньше, его не поймут в IOS6,

Может ли кто-нибудь помочь с лучшим решением, которое не означает, что песня играет до того, как будет сменена позиция?

Вот мой код до сих пор:

 soundManager.setup({ 

     url: '/js/soundmanager2_flash9.swf', 
     flashVersion: 9, 
     preferFlash: false, 
     debugMode: false, 

     onready: function() { 

      scAudio = soundManager.createSound({ 

       id: 'scAudio', 
       url: audioUrl, 
       autoLoad: true, 
       volume: 0, 
       position: startPoint 

      }); 

      soundManager.onPosition('scAudio', 500, function() { 

       scAudio.setPosition(startPoint) 
       soundManager.setVolume('scAudio', 100) 

      }); 

     } 

    }); 

function onThumbnailTouch() { 

    scAudio.play() 
}; 

ответ

1

Испытан в прошивке 7, я имел успех, используя Soundmanager «onPosition» триггер событий. Поэтому я привязал что-то вроде этого к событию кнопки «клик».

var mobileAudioLoaded = false; 
if (!mobileAudioLoaded) { 
    soundPlayer.play(); 
    soundPlayer.onPosition(0, function() { 
     if (!mobileAudioLoaded) { 
      this.setPosition(50000); // start at 50 seconds 
       mobileAudioLoaded = true; 
      } 
    }); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^