我有一个现有的程序,它使用。NET System.Media.SoundPlayer从内存流中播放wav文件。我需要这样做的原因是因为wav文件在磁盘上是加密的...我将它们解密为一个内存流,并将该流提供给播放器。很好用。
但我宁愿用MP3...它们更小。我正在探索NAudio作为解决方案,但不知道如何从加密流中播放mp3。
public void PlayEncMP3(String sourceFile)
{
FileStream input = new FileStream(sourceFile, FileMode.Open, FileAccess.Read);
DESCryptoServiceProvider cryptic = new DESCryptoServiceProvider();
cryptic.Key = ASCIIEncoding.ASCII.GetBytes("64BITKEY");
cryptic.IV = ASCIIEncoding.ASCII.GetBytes("64BIT_IV");
CryptoStream crStream = new CryptoStream(input, cryptic.CreateDecryptor(), CryptoStreamMode.Read);
MainPlayer = new SoundPlayer(crStream);
MainPlayer.Play();
}
public void PlayEncMP3(String sourceFile)
{
//FileInfo info = new FileInfo(sourceFile);
FileStream input = new FileStream(sourceFile, FileMode.Open, FileAccess.Read);
DESCryptoServiceProvider cryptic = new DESCryptoServiceProvider();
cryptic.Key = ASCIIEncoding.ASCII.GetBytes("64BITKEY");
cryptic.IV = ASCIIEncoding.ASCII.GetBytes("64BIT_IV");
CryptoStream crStream = new CryptoStream(input, cryptic.CreateDecryptor(), CryptoStreamMode.Read);
using (WaveStream blockAlignedStream =
new BlockAlignReductionStream(
WaveFormatConversionStream.CreatePcmStream(
new Mp3FileReader(crStream))))
{
using (WaveOut waveOut = new WaveOut(WaveCallbackInfo.FunctionCallback()))
{
waveOut.Init(blockAlignedStream);
waveOut.Play();
while (waveOut.PlaybackState == PlaybackState.Playing)
{
System.Threading.Thread.Sleep(100);
}
}
}
}
你有什么办法让这个工作吗?
编辑:我试图完全消除块对齐流,只使用waveout.init中的cryptoStream(而不是blockAlignedStream),但它不能将cryptoStream转换为naudio.wave.iWaveProvider。
如果没有可搜索的流,你就不能使用Mp3FileReader,因为它试图首先构建一个目录,而且它还支持在播放过程中重新定位。因此,您需要先将整个MP3读入内存流,然后将其交给MP3FileReader。
我已经设法使用YouTubePlayer播放YouTube视频。然而,当我尝试使用YouTubePlayer播放直播流时,什么也没有发生。API支持播放实时流吗?如果是,我该怎么做?
通过按暂停并重新播放,它再次正确工作,但我如何解决这个问题而不重新启动播放器? 提前谢了。
问题内容: 我正在尝试编写一个将从Soundcloud URL播放mp3的python脚本 这是我已经做的: 我尝试了许多选项,例如更改格式,频道,费率。而且我只是从扬声器中听到奇怪的声音,我搜索了Google以播放mp3,但没有找到任何信息。 我尝试通过传递mp3中的字节来创建对象,然后仅执行play函数。我没有收到任何错误:脚本正在运行,但没有任何播放。 我正在使用Python 3和Ubunt
我在服务器中创建了一个XML文件。它包含和标记。我获取标记并将它们作为链接显示在中。当用户点击链接时,我想播放电台应用程序中的文件。 下面是我的XML文件: 我不知道下一个活动中的链接怎么玩。 :
我试着用两种语言播放一部电影。音频1至扬声器音频2至耳机 播放视频并混合音频1 用audio1播放视频 仅播放音频2 如何结合这一点?
问题内容: 我想用Swift播放声音。 我的代码在Swift 1.0中可用,但现在在Swift 2或更高版本中不再起作用。 问题答案: 最可取的是,您可能想使用 AVFoundation。它提供了使用视听媒体的所有必要条件。 更新: 某些评论中建议与 Swift 2 , Swift 3 和 Swift 4 兼容。 斯威夫特2.3 迅捷3 Swift 4(与iOS 13兼容) 确保更改乐曲的名称以及