Jov*_*vem 3 objective-c audiostreamer ios
我已经通过流媒体和使用mattgallagher AudioStreamer库它不会显示真实的播放时间,并在0秒永不停止播放播放音乐一个iOS应用程序...
有谁知道为什么会这样?
非常感谢!
我经历过类似的事情.看看AudioStreamer.m中的progress方法
- (double)progress
{
@synchronized(self)
{
if (sampleRate > 0) && ![self isFinishing])
{
if (state != AS_PLAYING && state != AS_PAUSED && state != AS_BUFFERING)
{
return lastProgress;
}
...
}
}
return lastProgress;
}
Run Code Online (Sandbox Code Playgroud)
现在,未正确显示进度的原因在于两个if语句.当你AudioStreamer几乎完成时(可能是在加载了所有数据的时候),它就isFinishing变为了,这使得它返回缓存的进度值.此外,流转化状态变为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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
963 次 |
| 最近记录: |