Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XNA MediaPlayer快进/快退_Xna - Fatal编程技术网

XNA MediaPlayer快进/快退

XNA MediaPlayer快进/快退,xna,Xna,使用XNA 4.0,我目前正在使用以下方式从用户的PC/XBox360播放歌曲: Microsoft.Xna.Framework.Media.MediaPlayer.Play(Song song); 我发现,MediaPlayer有一个静态属性PlayPosition,正如我所研究的,它过去是一个get/set属性,但现在已经更新为get-only 是否有其他方法/技巧可用于显式设置当前播放歌曲的播放位置?看起来他们在XNA 4.0中添加了一个类。成员函数之一是,它允许您设置“

使用XNA 4.0,我目前正在使用以下方式从用户的PC/XBox360播放歌曲:

        Microsoft.Xna.Framework.Media.MediaPlayer.Play(Song song);
我发现,MediaPlayer有一个静态属性PlayPosition,正如我所研究的,它过去是一个get/set属性,但现在已经更新为get-only


是否有其他方法/技巧可用于显式设置当前播放歌曲的播放位置?

看起来他们在XNA 4.0中添加了一个类。成员函数之一是,它允许您设置“数据起始位置的偏移量(以字节为单位)”

请注意,我还没有尝试过这个方法,我无法告诉您如何将音频放入字节缓冲区(也许您可以从XACT wavebank中读取?)。这样做可能也会很痛苦,因为如果你决定再次改变位置,看起来你无法移除缓冲区。您必须要么让它播放到最后,要么创建一个新类并提交一个带有新偏移量的新缓冲区。所以,您可以将字节缓冲区保留在内存中,并在每次需要更改位置时将其传递给具有新偏移量的新DynamicSoundEffectInstance类


就像我说的,我还没有尝试过这个,我只是在看MSDN上的文档。我四处搜索了一会儿,肖恩·哈格里夫斯(Shawn Hargreaves)在2009年10月XNA 4.0发布之前认为这是不可能的。由于PlayPosition在XNA 4.0中仍然是一个只能获取的属性,我认为您在那里不会有任何运气,但DynamicSoundEffect实例是新的,可能会满足您的需要。

“肖恩·哈格里夫斯在2009年10月XNA 4.0发布之前说,他认为这是不可能的。”看起来情况仍然如此,谢谢你的提醒!您确认使用submitbuffer不起作用了吗?从描述上看,它确实听起来像你想要的那样。