回 帖 发 新 帖 刷新版面

主题:不能调用动态生成的m3u文件

动态生成了一个m3u格式的文件,使用如下代码调用,不能调用成功,就是不能播放出来。但是,如果我把动态生成的music.m3u里面的代码copy出来用一个记事本粘贴,再保存为m3u格式的文件,调用这个文件的话可以播放。请问这是什么原因啊?谢谢了先!
<object id="song" classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" type="application/x-oleobject" width="350" height="67">
      <param name="autoStart" value="false">
      <param name="enabled" value="true">
      <param name="filename" value="music.m3u" />
      <param name="playCount" value="1">
      <param name="ShowStatusBar" value="-1">
    </object>
动态生成M3U格式文件如下代码:
Dim strwriterobj As StreamWriter

        strwriterobj = File.CreateText("E:\lb\music.m3u")
        strwriterobj.WriteLine("<ASX Version=" & Chr(34) & "3.0" & Chr(34) & ">")

        '第一首歌曲       
        strwriterobj.WriteLine("<Entry> <Ref href=" & Chr(34) & "情人.mp3" & Chr(34) & "/> </Entry>")
        '第二首歌曲
        strwriterobj.WriteLine("<Entry> <Ref href=" & Chr(34) & "喜欢你.mp3" & Chr(34) & "/> </Entry>")
        '第三首歌曲
        strwriterobj.WriteLine("<Entry> <Ref href=" & Chr(34) & "再见理想.mp3" & Chr(34) & "/> /Entry>")
        '第四首歌曲
        strwriterobj.WriteLine("<Entry> <Ref href=" & Chr(34) & "长城.mp3" & Chr(34) & "/> </Entry>")
       
        strwriterobj.WriteLine("</ASX>")
        strwriterobj.Close()

回复列表 (共3个回复)

沙发

自动生成了过多的冗余代码,而在记事本里是看不到的,被忽略,所以保存为记事本后就跟手工输入一行一行的音乐列表然后保存为m3u格式的过程一样!这个自动生成的代码我没有测试过,不过做个m3u的播放列表是很简单的事,你需要查看下生成的代码有没有什么在记事本里显示不了被忽略的但又的确存在的部分!
这很容易理解,就象我们在网页上拷贝一大串东西,有文字有图片还有格式,但是复制到记事本后只有文字,其他的都被忽略显示不了!但是要放在word里又会显示!就是这个意思!

板凳

这样啊,谢谢!
我觉得,您提供的是一种可能发生的情况.如果就是这样情况的话,怎样排除呢?谢谢!

3 楼

其实m3u文件就是一个txt一样的文件,你可以按照生成txt文件的样式来插入数据,如:
FileStream file = new FileStream("test.m3u",FileMode.Create,FileAccess.Write);   
  StreamWriter writer = new StreamWriter(file);   
  writer.WriteLine(@"Music/1.mp3");   
  writer.WriteLine(@"Music/2.mp3");  
...

我来回复

您尚未登录,请登录后再回复。点此登录或注册