如何在Firemonkey(FMX)中无缝循环声音?

时间:2014-05-31 13:47:32

标签: delphi c++builder firemonkey

如何使用Firemonkey中的TMediaPlayer无缝循环声音(使用XE6,C ++ Builder)?

到目前为止我所做的是使用TTimer检查

if (MediaPlayer->CurrentTime >= MediaPlayer->Media->Duration)
{
  MediaPlayer->CurrentTime = 0;
  MediaPlayer->Play ();
}

但即使TTimer的Interval设置为1,也不会创建无缝循环。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我不熟悉这个组件但是假设在Windows中它是DirectShow的包装器。这意味着由于启动/停止图形的开销,您永远无法获得(帧)无缝播放。如果你可以忍受一个小打嗝,你可能会得到最好的结果(当然还有更好的代码),如果有像OnLastFrame()事件,你可以将帧计数器重置为第一帧(或当前时间为零)