我想非常精確地控制聲音的開始,但它似乎在開始聲音之前要等待一些東西。這就好像播放器中有一個內部時鐘以大約43 fps的速度運行,並且聲音只能在該時鐘的節拍處開始播放。
無論項目的幀率或它支配的計算機的幀率如何,始終爲43 fps(至少對我而言)。SoundChannel何時實際開始播放聲音?
爲了測試這個,開始一個聲音,然後每個幀比較channel.position與期望的位置,例如, getTimer() - startTime。差別總是(對我來說)23或46 mS。
我發現了一個問題here,它討論了位置屬性,並且以它自己的速率進行了更新,在我的情況下它恰好是每秒23幀,速度爲43幀/秒。
有沒有辦法控制聲音的播放開始並知道位置屬性何時更新?如果有人能夠解釋什麼時候Flash真的在做什麼,那會很棒!
我真的很感激所有的輸入,這太奇怪了。
編輯:我注意到position屬性只包含23.219954648526077的倍數,例如, 46.439909297052154,69.65986394557822?如果您在創建頻道後直接詢問,它包含我剛剛設置的號碼,但在下一幀中只有這些特定號碼。任何想法的人?
感謝您的回覆,它解釋了神祕的一部分。但這並不能解釋爲什麼聲音似乎被推遲了。可能是因爲soundchannels不是直接創建,而是暫停,直到下一個soundchannel更新週期,位置屬性也更新了嗎?如果有這樣一個循環,是否有任何事件可以用來知道這是什麼時候發生的? – Bob 2010-09-28 19:44:05