2016-03-20 15 views
0

Birkaç gün boyunca popen ile ilgili bir sorun üzerinde çarptı.mplayer aniden popolu olmayı sevmiyor mu?

kodu:

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; 

}

bir Linaro gömülü denetleyicisinde alışveriş çalıştırıldı. İyiydi, hata yok. Kod basit olsa da (sadece yürütme üzerine bir şarkı söyler ve daha sonra da şarkı söyler) bir düşünürümden daha fazla üzülmeme neden olur.

Komutun kendisini normal bir bash kabuğuna kopyalayıp yapıştırırsam, düzgün çalışır. Ve daha da kötüsü, başka bir yere takılana kadar iyi koştu. Şu anda bir hat jakı ile bir hat çıkışı olmadan önce bağlı olduğundan emin değilim.

Ne olursa olsun, olsun hata bunu kopyalamak ve konsolun içerisine popen aracılığıyla yürütür tam komutu yapıştırın, eğer başlar,

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

Yine (ilgili bölüme aşağı özetlenmiştir) olduğu çalıştırdığınızda oynarken. Eğer beni tamamen şaşırtmışsa, -ao alsa, -ao nabız, -ao oss olursa, başarısız olur. Herhangi bir yardım takdir edilecektir!

Düzenleme: Linux Jonas ve alk önerildiği gibi olmak yara kol CPU

+1

İzin verilen birçok izin reddedildi. C programına nasıl başlarsın? C programınızı aynısını yapan bir bash betiği ile değiştirirseniz ne olur? Ayrıca, kullandığınız hangi kesin linux dağıtım sürümünü ve SELinux veya AppArmor oyundaysa lütfen ekleyin. –

+0

'adamdan popen()': "* Bu komut/bin/sh * 'ye geçirilir." Yani test ortam ağında '/ bin/sh' ne başlar? – alk

+0

Jonas: Bunu sudo ile yapıyorum, ancak mplayer terminalden kendi başına ve sudo olmadan çalışıyor. – M4rc

cevap

0

Sorun kullanarak Ubuntu 12.04 dayanarak, Linaro olduğunu - izinleri. Yol boyunca bir şey o ran nasıl değişti, ama kirli bir düzeltme oldu günün sonunda sadece çizgi için

su - user -c ' mplayer ... ' 

çağrıldığını sayılabilir.

İlgili konular