c#中我把得到的string写进流里面直接写入文件中,无法播放
jiaodian949 发布于2016-04 浏览:2565 回复:3
0
收藏


            var aa = uu.MySpeechSynthesis("你好啊");  //这个函数是我自己写的获取识别后返回的值;

            System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();

            Byte[] BytesMessage = UTF8.GetBytes(aa);


            MemoryStream ms = new MemoryStream(BytesMessage);

            FileStream fs = new FileStream("d:\\text1.mp3",FileMode.OpenOrCreate);

            BinaryWriter w = new BinaryWriter(fs);

            w.Write(ms.ToArray());

     

            ms.Close();

            fs.Close();

是我写入方式不对还是什么原因,求大神解答,反馈回来的是一个string,里面全是乱码,转成 Byte全是数字;值肯定是获取到的,因为返回的不是错误码;

收藏
点赞
0
个赞
共3条回复 最后由用户已被禁言回复于2022-04
#4hedang_hd回复于2016-04

赞!

我们不一定能在第一时间回复您的问题,您能自己解决相信会有更大的收获;也感谢您解决问题之后在此分享解决方案。谢谢!

0
#3jiaodian949回复于2016-04

没人回答我,但是我问题解决了,还是因为基础知识不足造成的,我把我出现问题的原意解答下,希望能帮助遇见和我一样问题的人;

主要问题:就是把steam转成string,由于string类型的限制(这个可以自己查资料)所以数据会受损,导致无法播放或者使用;

解决方案:二进制流直接转成byte[],然后保存文件;

0
#2jiaodian949回复于2016-04

我直接把string转成mp3文件也不行


            SpeechSynthesis uu = new SpeechSynthesis();

            var aa = uu.MySpeechSynthesis("呵呵呵呵呵");  //这个函数是我自己写的获取识别后返回的值;

             File.WriteAllText("d:/text2.mp3", aa);



来个人求带出坑

0
TOP
切换版块