2013-06-21 2 views
3

Я играю Sound от ByteArray, и мне нужно выяснить, сколько байтов на самом деле было сыграно до сих пор.Звук - сколько байт было воспроизведено?

  • Звук играет на 44.1
  • миллисекунды играл до сих пор могут быть извлечены из SoundChannel.position

Зная выше, я думал, что уравнение будет что-то вроде этого:

((SoundChannel.position/1000) * 44100) * 2 

Но это не швы, выше не работает правильно.

+0

+1 хорошее исследование и попытка. – Marty

+0

, как он работает неправильно? – Glitcher

+0

@Glitcher Я использую это, чтобы попытаться приостановить и возобновить воспроизведение, но при возобновлении звука начнется неправильное положение. – Drahcir

ответ

1

Звучит так, как будто вы используете новую версию Sound.loadCompressedDataFromByteArray() или PCM. Я бы предложил, чтобы вы не смогли точно определить позицию ByteArray, используя это.

Посмотрите пример, используя прослушиватель Sound SampleDataEvent, где вы извлекаете кучу образцов из ByteArray (1024,2048 и т. Д.) И соответствующим образом обновляете переменную положения. Вы не будете лучше, чем сохранить позицию ByteArray imho, для большинства случаев это совершенно нормально.

+0

Это то, что я должен был сделать в конце, но он работает, только если вы соберете 2048 образцов. Сначала я попробовал с 8192 образцами, но это не так быстро для паузы/возобновления. – Drahcir

+0

В идеале я хотел бы рассчитать, просто зная количество секунд. – Drahcir