我是编程初学者,正在尝试制作一个简单的控制台 MP3 播放器作为一个项目。为此,我需要一种播放.mp3文件的方法。SDL Mixer 提供了此功能,但需要libmpg123安装在系统上。
即使我安装了所需的依赖项“libmpg123”,调用“Mix_Init()”总是失败。我没有对其他格式的依赖,例如 FLAC、OGG、MOD 和 MIDI(如果有的话)。
我在笔记本电脑上运行 Ubuntu 18.04,并且 SDL2 版本 2.0.9、SDL_Mixer 2.0.4 都是从源代码构建的(尽管我已经尝试了通过包管理器提供的版本apt)。我还libmpg123安装了我也是从源代码构建的(同样,我也尝试了通过包管理器提供的版本)。
我用两种方式编译了代码:
g++ Mix_Init.cpp -lSDL2 -lSDL2_mixer
和
g++ Mix_Init.cpp -lSDL2 -lSDL2_mixer -lmpg123
我不知道哪一个是正确的,但都不能解决问题。
#include<SDL2/SDL.h>
#include<SDL2/SDL_mixer.h>
#include<iostream>
int main(int argc, char** argv)
{
if(SDL_Init(SDL_INIT_AUDIO))
std::cerr << "SDL_Init() Error: " << SDL_GetError() << std::endl;
else {
int result {0};
if(!((result = Mix_Init(MIX_INIT_MP3)) && MIX_INIT_MP3)){
std::cerr << Mix_GetError() << std::endl;
std::cerr << "Mix_Init() returns " << result << std::endl; …Run Code Online (Sandbox Code Playgroud)