winform里面播放mid格式音频

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform里面播放mid格式音频相关的知识,希望对你有一定的参考价值。

我之前用Java写了一个2048的游戏,现在在用写,但是之前在Java里面播放背景音乐支持mid格式的,开始在C#里面好像只有WAV格式的,但WAV格式文件太大了,还是想要用mid格式,请问有什么方法呢?可以给出代码吗?谢谢

参考技术A 可以使用大家听歌时经常用的软件-千千静听
最新版4.6.8下载地址:
http://index.ttplayer.com/ttpsetup.exe
转换时,先将MID文件拖动到播放列表里面,然后右击该列表里的MID文件,选择转换,之后就全是中文了,你一看就会懂的!
是否可以解决您的问题?追问

我是问程序怎么写,我有mid文件

参考技术B 那最好就是先把格式转换成mid追问

我是问程序怎么写,我有mid文件

使用音频流播放自定义音频格式

【中文标题】使用音频流播放自定义音频格式【英文标题】:Playing custom audio formats with audio stream 【发布时间】:2018-07-16 04:04:41 【问题描述】:

所以我开始制作视频游戏,我想创建一种自定义声音格式。

Path file = Paths.get("C:", "Users", "Mariobro85", "Desktop", "test.wav");

public void playFile() throws InterruptedException
    try
        File f = new File(file.toString());
        URL url = f.toURI().toURL();

        AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(url);

        Clip clip = AudioSystem.getClip();
        clip.open(audioInputStream);

        clip.start();

        Thread.sleep(15000);
    
    catch(UnsupportedAudioFileException uafE)
        System.out.println("ERROR: Audio data of the file " + file + " is not in wave format.");
    
    catch(IOException ioE)
        System.out.println("ERROR: Audio data of the file " + file + " is corrupted.");
    
    catch(LineUnavailableException luE)
        System.out.println(luE);
    

但这只能播放标准的 .wav 文件。 我也使用自定义格式的 wav,但问题是我的文件中的音频数据从 0x60 而不是 0x0 开始,并且还存储了循环、音量等信息。因此,它总是抛出 UnsupportedAudioFileException。

有什么方法可以告诉 AudioStream 跳转到一个特定的地址,还是标准的 java 库无法做到这一点?

【问题讨论】:

【参考方案1】:

如果要在默认音频解析器解析之前编辑音频数据,可以如下编辑

  File file=new File("path/to/file");
    byte[] bytes= Files.readAllBytes(file.toPath());
    //edit or trim bytes as you wish.
    ByteArrayInputStream inputStream=new ByteArrayInputStream(bytes);//you can even give an offset in this constructor
    AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(inputStream);

    Clip clip = AudioSystem.getClip();
    clip.open(audioInputStream);

    clip.start();
    Thread.sleep(xAmount);

如果您的格式是真正自定义的,我建议您只遵循这些标准化方法之一,并简单地将页眉或页脚添加到您的字节数组中。无需重新制作已经完成的内容。或者,为了使事情更简单,您可以添加一个您也加载的单独文件,其中包含您希望与音频一起加载的不同数据。

【讨论】:

以上是关于winform里面播放mid格式音频的主要内容,如果未能解决你的问题,请参考以下文章

WinForms 应用程序表单在播放音频时“晃动”

winform 窗体 VMP 控件 怎么实现背景音乐重复播放 MyPlayer.URL = strFilePath + "back1.mid";

用winform的Panel播放视频(监控视频,mbf格式的),时间轴怎么实现?

winform里添加视频问题

winform下的简易播放器

winform中如何播放flv视频?