mplayer突然不喜欢popen?

时间:2016-03-20 09:06:35

标签: c++ linux popen mplayer

几天来一直困扰着popen的问题。

代码:

int main(){
 FILE *fp = popen("mplayer /home/linaro/Music/cp.mp3", "r");
char buffer[1028]; 
while (fgets(buffer, 1028, fp) != NULL) 
{ 
  std::cerr<<buffer; 
} 
pclose(fp);
fp = 0;
return 0;

}

在linaro嵌入式控制器上运行。跑得很好,没有错误。尽管代码很简单(只是在执行时播放冷酷的歌曲然后退出),但这似乎让我感到更加悲伤。

如果我将命令本身复制并粘贴到普通的bash shell中,它运行正常。更糟糕的是,它是否运行良好,直到它插入其他地方。我不确定它现在是否通过耳机插孔连接到它在线路输出插孔之前。

无论如何,我运行时得到的错误是(总结到相关部分)

  

MPlayer svn r34540(Ubuntu),使用gcc-4.6(C)2000-2012 MPlaye4构建

     

团队mplayer:无法连接到套接字mplayer:没有这样的文件或

     

目录无法打开LIRC支持。你将无法使用

     

你的遥控器。

     

播放/home/linaro/Music/cp.mp3 libavformat版本53.21.1

     

(外部)不匹配的标题版本53.19.0仅音频文件格式

     

检测。剪辑信息:标题:科学家艺术家:酷玩专辑:A

     

血腥头年:2002评论:体裁:未知负荷

     

/ home / linaro / Music / Requested audio codec family [mpg123]

中的字幕      

(afm = mpg123)不可用。在编译时启用它。打开音频

     

解码器:[ffmpeg] FFmpeg / libavcodec音频解码器libavcodec版

     

53.35.0(外部)不匹配的标题版本53.32.2音频:44100 Hz,2   ch,floatle,256.0 kbit / 9.07%(比率:32002-> 352800)所选音频

     

编解码器:[ffmp3float] afm:ffmpeg(FFmpeg MPEG layer-3 audio)主页

     

目录无法访问:权限被拒绝AO:[pulse] Init失败:

     

连接被拒绝无法初始化音频驱动程序'pulse'Home

     

目录无法访问:权限被拒绝[AO_ALSA] alsa-lib:

     

pcm_hw.c:1293:(snd_pcm_hw_open)打开'/ dev / snd / pcmC1D0p'失败(-22):

     

无效参数[AO_ALSA]播放打开错误:参数无效

     

无法初始化音频驱动程序'alsa'[AO SDL]采样率:44100Hz

     

频道:使用aalib音频驱动程序的立体声格式floatle [AO SDL]。 [AO

     

SDL]不支持的音频格式:0x1d。 [AO SDL]无法打开音频:否

     

可用音频设备无法初始化音频驱动程序'sdl:aalib'

     

无法打开/初始化音频设备 - &gt;没有声音。音频:没有声音

     

视频:没有视频

同样,如果我将通过popen执行的确切命令复制并粘贴到控制台中,它就会开始播放。如果通过-ao alsa,-ao pulse,-ao oss也会失败,这让我完全陷入困境。任何帮助将不胜感激!

编辑: Linux是linaro,基于Ubuntu 12.04使用arm CPU

1 个答案:

答案 0 :(得分:0)

问题正如Jonas和alk建议的那样 - 权限。一路上的东西改变了它的运行方式,但在一天结束时,脏的修复只是包括

su - user -c ' mplayer ... '

到被调用的行。