2016-03-20 41 views
0

数日間ポピェンに問題がありました。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; 

}

はリナロエンベデッドコントローラ上の店舗で行いました。蘭はうまく、エラーはない。コードはシンプルで(実行中にコールドプレイの曲を演奏して終了する)、思うよりも悲しみが増しているようです。

コマンド自体をコピーして通常のbashシェルに貼り付けると正常に動作します。さらに悪いことに、別の場所に接続するまでうまくいったのですか?ヘッドフォンジャックに接続する前に、ヘッドフォンジャックを介して接続しているかどうかはわかりません。

かかわらず、私はそれを実行したときに私が手にエラーが(関連部分までまとめ)さ

MPlayer svn r34540 (Ubuntu), built with gcc-4.6 (C) 2000-2012 MPlaye4

Team mplayer: could not connect to socket mplayer: No such file or

directory Failed to open LIRC support. You will not be able to use

your remote control.

Playing /home/linaro/Music/cp.mp3 libavformat version 53.21.1

(external) Mismatching header version 53.19.0 Audio only file format

detected. Clip info: Title: The Scientist Artist: Coldplay Album: A

Rush Of Blood To The Head Year: 2002 Comment: Genre: Unknown Load

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

(afm=mpg123) not available. Enable it at compilation. Opening audio

decoder: [ffmpeg] FFmpeg/libavcodec audio decoders libavcodec version

53.35.0 (external) Mismatching header version 53.32.2 AUDIO: 44100 Hz, 2 ch, floatle, 256.0 kbit/9.07% (ratio: 32002->352800) Selected audio

codec: [ffmp3float] afm: ffmpeg (FFmpeg MPEG layer-3 audio) Home

directory not accessible: Permission denied AO: [pulse] Init failed:

Connection refused Failed to initialize audio driver 'pulse' Home

directory not accessible: Permission denied [AO_ALSA] alsa-lib:

pcm_hw.c:1293:(snd_pcm_hw_open) open '/dev/snd/pcmC1D0p' failed (-22):

Invalid argument [AO_ALSA] Playback open error: Invalid argument

Failed to initialize audio driver 'alsa' [AO SDL] Samplerate: 44100Hz

Channels: Stereo Format floatle [AO SDL] using aalib audio driver. [AO

SDL] Unsupported audio format: 0x1d. [AO SDL] Unable to open audio: No

available audio device Failed to initialize audio driver 'sdl:aalib'

Could not open/initialize audio device -> no sound. Audio: no sound

Video: no video

私はコピーして、コンソールにpopenのを経由して、それが実行される正確なコマンドを貼り付ける場合は、再度、それは始まります遊ぶ。私は完全に困惑しています。どんな助けもありがとう!

編集: - パーミッションをジョナスとアルクが示唆されているように Linuxはリナロでは、Ubuntu 12.04に基づいてアームCPUを使用しては

+1

多くのアクセス許可が拒否されました。どのようにCプログラムを始めるのですか?同じことをしているbashスクリプトでCプログラムを複製するとどうなりますか?また、使用しているLinuxディストリビューションのバージョンと、SELinuxまたはAppArmorがあれば追加してください。 –

+0

'' man popen() ':" * "このコマンドは/ bin/sh *に渡されます"あなたのテスト環境で '/ bin/sh'は何を起動しますか? – alk

+0

Jonas:私はsudoで実行していますが、ターミナルからのmplayerはsudoの有無にかかわらず実行しています。 – M4rc

答えて

0

問題があること巻き上げます。道に沿って何かが、それはどのように走っ変更しましたが、一日の終わりに汚い修正はちょうどと呼ばれているラインに

su - user -c ' mplayer ... ' 

を含めるようにしました。

関連する問題