我已經通過流媒體和使用mattgallagher AudioStreamer庫它不會顯示真實的播放時間,並在0秒永不停止播放播放音樂一個iOS應用程序...AudioStreamer沒有顯示正確的播放時間
有誰知道爲什麼會發生這種情況?
非常感謝!
我已經通過流媒體和使用mattgallagher AudioStreamer庫它不會顯示真實的播放時間,並在0秒永不停止播放播放音樂一個iOS應用程序...AudioStreamer沒有顯示正確的播放時間
有誰知道爲什麼會發生這種情況?
非常感謝!
我經歷過類似的事情。在AudioStreamer.m
- (double)progress
{
@synchronized(self)
{
if (sampleRate > 0) && ![self isFinishing])
{
if (state != AS_PLAYING && state != AS_PAUSED && state != AS_BUFFERING)
{
return lastProgress;
}
...
}
}
return lastProgress;
}
看看進度法現在,對於不能正確顯示的進度的原因在於兩個if語句中。當你的AudioStreamer
差不多完成了(可能是所有的數據都被加載的時候),它的isFinishing
就變成了true,這就使得它返回緩存的值來取得進展。此外,流轉狀態變爲AS_STOPPING
,這使得第二個if語句返回lastProgress
。你真正想要的是更新進度直到流光停止。
我對代碼的下列修改是這樣做的,它似乎工作正常。不過,鑑於AudioStreamer的總體質量以及它由Matt Gallagher開發的事實,這些if語句可能是因爲它們是有原因的。到目前爲止,我沒有遇到任何崩潰或類似的修改後的代碼,但您應該在應用程序中徹底測試它。請注意,一旦拖纜完成,我不再查詢進度。如果你這樣做,測試,如果工程:)
- (double)progress
{
@synchronized(self)
{
if (sampleRate > 0))
{
if (state != AS_PLAYING && state != AS_PAUSED && state != AS_BUFFERING && state != AS_STOPPING)
{
return lastProgress;
}
...
}
}
return lastProgress;
}
你好,謝謝你......我測試這個解決方案,它的工作原理以及比後...但如果我尋找音樂到另一個時間問題再次發生.. – Jovem
哦,所以你有一個滑塊來改變歌曲的位置?那麼,是的,我沒有在我的應用程序中:/ – Phlibbo
是的...非常感謝您的幫助解決方案提高了我的應用程序! – Jovem