有没有比 mciSendString 更好的播放 Mp3 的方法?
Posted
技术标签:
【中文标题】有没有比 mciSendString 更好的播放 Mp3 的方法?【英文标题】:is there any better way to play Mp3 than mciSendString? 【发布时间】:2019-04-28 03:05:32 【问题描述】:mciSendString 很烂,很难在多线程中使用,例如很难获得当前的 PlayingState
【问题讨论】:
***.com/q/4019733/362536 询问“更好的方式” 而不解释,“更好” 是什么,将把这个问题作为主要基于意见的问题关闭。请简要说明您需要什么,以及为什么您认为您当前的方法无法实现。请记住,多线程是困难的,无论你如何处理它。 MciSendString 对于多线程来说真的很糟糕。如果你只是想实时混音,你可以使用 DirectSound,但目前这个功能只能应用于旧程序。相比之下,使用新的 XAudio2 是一个不错的选择。 【参考方案1】:我建议使用 DirectShow 或 Windows Media Foundation,因为它们都有灵活的 API 用于基于文件的播放(您不必处理读取文件和理解格式、查找编解码器等)并且仍然公开播放控制.请参阅这些文章:
-
DirectShow 和 IGraphBuilder(非常简单直接) - How To Play a File
How to Play Media Files with Media Foundation
Link to example from the first link
【讨论】:
以上是关于有没有比 mciSendString 更好的播放 Mp3 的方法?的主要内容,如果未能解决你的问题,请参考以下文章