我目前正在尝试用C#编写音频播放器。我正在使用BASS库来处理音乐播放,但现在我有一个小问题,就是得到歌曲的长度。
好吧,我已经阅读了BASS文档并找到了一种方法:我需要做的只是
int stream = Bass.BASS_StreamCreateFile(filepath,....);
int length = Bass.BASS_ChannelBytes2Seconds(stream, Bass.BASS_ChannelGetLength(stream));
在大多数情况下,我可以得到歌曲的有效长度。这里的问题开始了。据我所知,创建流操作非常昂贵(如果我错了,请纠正我),仅为了获取歌曲长度而创建一个流似乎有点愚蠢。
那么,我的问题是:是否有其他方法可以在不创建流文件的情况下获取它(不会太昂贵)。稍后我会考虑读取id3标签。创建该流是“无论如何都必须完成的邪恶行径”,即使我尝试使用其他库来获取它,它也会完全做同样的事情吗?