gpt4 book ai didi

c# - 流的意外结束;预期的元数据

转载 作者:太空宇宙 更新时间:2023-11-03 16:01:18 24 4
gpt4 key购买 nike

我正在尝试在 Windows Phone 中制作一个应用程序来执行音频隐写术。为此,我将 FLAC 流转换为 WAV 流,这样我就可以轻松更改数据字节。

我将 FlacBox 编译为 WP 类库并删除了 [Serializable] 因为我不知道要用什么来改变它。

public List<byte> ReadToEnd(System.IO.Stream streams)
{
using (WaveOverFlacStream wav = new WaveOverFlacStream(new FlacReader(streams, false)))
{
try
{
long originalPosition = 0;

if (wav.CanSeek)
{
originalPosition = wav.Position;
wav.Position = 0;
}

try
{
byte[] readBuffer = new byte[4096];

int totalBytesRead = 0, bytesRead;
if (wav.CanRead)
while ((bytesRead = wav.Read(readBuffer, totalBytesRead, readBuffer.Length - totalBytesRead)) > 0)
{// never pass this
totalBytesRead += bytesRead;

if (totalBytesRead == readBuffer.Length)
{
...

wav 仅返回 19MB 中的 44 个字节

82,73,70,70,20,9,49,1,87,65,86,69,102,109,116,32,16,0,0,0,1,0,2,0,68,172, 0,0,16,177,2,0,4,0,16,0,100,97,116,97,240,8,49,1

我将这些字节转换为 ASCII,我得到了 RIFF/WAVE header ,但我仍然没有音频数据。我错过了什么?

编辑:我使用 [DataContract] 来改变 [Serializable] 但仍然出错。

最佳答案

如果我从音频文件中读取所有字节然后使用 MemoryStream 将这些字节读取为 IO.Stream 然后使用 FlacReader< 读取这些流似乎会起作用WaveOverFlacStream

关于c# - 流的意外结束;预期的元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21216731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com