欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

JUCE 学习笔记(一):创建音频播放器

最编程 2024-05-02 21:54:38
...

Audio Formats:

Juce提供了一系列的工具来读写多种格式的音频文件。本例中会用到一下类

AudioFormatManager:这个类包含了一份音频文件格式的list,并且可以创造合适的对象来从这些格式中读取声音数据

AudioFormatReader:这个类处理底层音频文件读取的操作,并且让我们可以通过一致的格式读取音频(如浮动值的数组)。当AudioFormatManager对象被要求打开一个特定文件时,会创建这个类的实例。

AudioFormatReaderSource:这是AudioSource类的一个子类。它可以从AudioFormatReader对象中读取音频数据,并通过其getNextAudioBlock()函数渲染音频

AudioTransportSource:另一个AudioSource的子类,可以控制一个AudioFormatReaderSource对象的播放。这种控制包括开始和停止AudioFormatReaderSource对象的播放。它还可以进行采样率转换,以及提前缓冲音频。

WAV和AIFF格式在各平台适用,其他文件格式取决于平台和Projucer项目中juce_audio_formats模块中启用的选项

State

    enum TransportState
    {
        Stopped,
        Starting,
        Playing,
        Stopping
    };

Changing States

 1     void changeState (TransportState newState)
 2     {
 3         if (state != newState)
 4         {
 5             state = newState;
 6  
 7             switch (state)
 8             {
 9                 case Stopped:                           // [3]
10                     stopButton.setEnabled (false);
11                     playButton.setEnabled (true);
12                     transportSource.setPosition (0.0);
13                     break;
14  
15                 case Starting:                          // [4]
16                     playButton.setEnabled (false);
17                     transportSource.start();
18                     break;
19  
20                 case Playing:                           // [5]
21                     stopButton.setEnabled (true);
22                     break;
23  
24                 case Stopping:                          // [6]
25                     transportSource.stop();
26                     break;
27             }
28         }
29     }
changeState