Nasıl PHP ile tarayıcı üzerinden VLC açabilirsiniz (Mac OS X)

2 Cevap php

Ben tarayıcı üzerinden VLC açmak ve anında Mac OS X üzerinde verilen video dosyasını oynatmak yapmaya çalışıyorum

Bu benim yerel sunucu üzerinde çalışan ve sadece yerel olarak çalıştırmak içindir - bu yüzden zaten İsmimin ve grubu "personel" ile (MAMP) apache çalıştırın (httpd.conf tanımlanır).

EVET - ben ne gerek değil ancak, bu yüzden önermiyoruz ... - Ben VLC http arayüzü var biliyor musunuz

Ben Terminal üzerinden çalıştırdığınızda benim şimdiki sistem sorunsuz çalışıyor:

php /var/www/Movies/index.php  

-> Bu VLC açılması yol açar ve video intented gibi tam ekran oynamaya başlar.

Ben tarayıcı ile aynı PHP-sayfayı çalıştırdığınızda sorunlar başlar. Ardından VLC-süreç başlar, ancak bunun için GUI var, video dosyası oynamaya başlamak olmaz ve VLC süreç CPU yaklaşık% 100 alır.

  • Her ikisi de; Terminal ve tarayıcı aynı kullanıcı (mayın) ile çalışan VLC-süreçleri başladı
  • Var "Veli süreci" bash Hem
  • Terminal ile başladı VLC-süreç boş "Süreç grup" (sadece işlem id numarası) sahiptir ve tarayıcı başladı var "httpd" + (id numarası)
  • VLC-işlem yapar tarayıcısı üzerinden başladı 1000 kat daha fazla Terminal-başladı meslektaşı daha "Mach Sistem Aramalar".

Herkes bana bu şey çalışma almak konusunda herhangi bir işaretçiler verebilir misiniz?

index.php

# $j is a file path to the videofile and is defined before
exec('/var/www/Movies/vlc.sh "' . $j . '" > /dev/null 2>&1 & echo $!;'); 

# If I do this in the given PHP-page it tells me that apache is running 
# with my username and with the group "staff" like it should be...
exec('whoamI');

vlc.sh

#!/bin/bash 
# Activate VLC in 5 seconds to make it the front-most window 
(sleep 5; open -a VLC) & 

# Open video file 
/Applications/VLC.app/Contents/MacOS/VLC --quiet --fullscreen "$1"

2 Cevap

Sadece bu soruyu kapatmak uğruna, benim için çalıştı nihai çözüm bu oldu:

exec('echo "OS_X_ROOT_PASSWORD" | sudo -S launchctl bsexec LOGIN_WINDOW_PROCESS_ID osascript -e \'do shell script "PATH_TO_vlc.sh" & " \"MOVIE_FILE_PATH\" \"SUBTITLE_FILE_PATH\""\' > /dev/null 2>&1 & echo $!;');

Vlc.sh İçeriği

#!/bin/bash

# Activate VLC in x seconds to make it the front-most window
(sleep 4; open -a VLC) &

# Open video file
su - YOUR_MAC_OS_USERNAME -c "/Applications/VLC.app/Contents/MacOS/VLC --quiet --volume=1024 --fullscreen --sub-file=\"$2\" \"$1\""

Cevabınız için teşekkür ederim. Ben VLC bu çalışma alamadım, ama benim tarayıcı ile bir şeyler yapmak olduğunu kanıtladı.

exec('osascript -e \'say "Hello"\'');

I got that AppleScript working via browser which was a huge victory. :D Now the problem is that apparently VLC can't be ran as root and complains: "VLC is not supposed to be run as root. Sorry. If you need to use real-time priorities and/or privileged TCP ports you can use /Applications/VLC.app/Contents/MacOS/VLC-wrapper (make sure it is Set-UID root and cannot be run by non-trusted users first). ". :(

Böylece - Yardım arayışı hala bu sınırlamanın üstesinden gelmek için gereklidir ... devam ...

Ben sihirli gerçekleşmesi için istediğiniz budur:

$PID = exec('ps aux | grep "loginwindow" | grep -v grep | awk \'{ print $2 }\''); 
exec('sudo launchctl bsexec ' . $PID . ' /Applications/VLC.app/Contents/MacOS/VLC --quiet --fullscreen "' . $j . '" > /dev/null 2>&1 & echo $!;');