2008-10-02 28 views
7

Trình phát flash độc lập không lấy đối số nào ngoài tệp .swf khi bạn khởi chạy nó từ dòng lệnh. Tôi cần người chơi để đi toàn màn hình, không có viền cửa sổ và như vậy. Điều này có thể được thực hiện bằng cách nhấn ctrl + f khi chương trình đã bắt đầu. Tôi muốn làm điều này theo chương trình khi tôi cần nó để khởi động vào màn hình đầy đủ mà không cần bất kỳ sự tương tác nào của con người.Lập trình khởi chạy Adobe Flashplayer độc lập trên Linux/X11

Tôi đoán là tôi cần một số cách xử lý cửa sổ và sau đó gửi một sự kiện giống như phím tắt "ctrl + f".

Nếu có bất kỳ sự khác biệt nào, có vẻ như flashplayer là một ứng dụng gtk và tôi đã cài đặt python với pygtk.

CẬP NHẬT (giải pháp tôi sử dụng ... nhờ vào câu trả lời ypnos'):

./flashplayer http://example.com/example.swf & sleep 3 && ~/xsendkey -window "Adobe Flash Player 10" Control+F 
+1

+1 Câu hỏi hay! :) Tôi đã tìm kiếm này trong một thời gian –

Trả lời

7

Bạn có thể sử dụng ứng dụng chuyên dụng sẽ gửi phím tắt cho trình quản lý cửa sổ, sau đó sẽ chuyển nó sang flash, nếu cửa sổ bắt đầu như cửa sổ đang hoạt động trên màn hình. Tuy nhiên, điều này khá dễ xảy ra do sự chậm trễ giữa flash bắt đầu và khi cửa sổ hiển thị.

Ví dụ, kịch bản của bạn có thể làm một cái gì đó như thế này: flashplayer * .swf ngủ 3 & & xsendkey Control + F

Các xsendkey ứng dụng có thể được tìm thấy ở đây: http://people.csail.mit.edu/adonovan/hacks/xsendkey.html Nếu không cung cấp một cửa sổ cụ thể, nó sẽ gửi nó đến cửa sổ gốc, được quản lý bởi trình quản lý cửa sổ của bạn. Bạn cũng có thể cố gắng tìm ra Id cửa sổ đầu tiên, sử dụng xprop hoặc một cái gì đó liên quan đến nó.

Tùy chọn khác là Trình quản lý cửa sổ, có thể nhớ cài đặt của bạn và tự động áp dụng chúng. Fluxbos ví dụ cung cấp tính năng này. Bạn có thể thiết lập fluxbox để làm cho Window ít trang trí hơn và kéo dài nó trên toàn bộ màn hình, nếu flashplayer hỗ trợ được thay đổi kích cỡ. Đây cũng không phải là quá tốt đẹp, vì nó có thể sẽ ảnh hưởng đến tất cả các cửa sổ flashplayer bạn mở bao giờ hết.

+0

xprop + xsendkey hiện các trick. Tôi sẽ đăng lệnh bash chính xác của tôi khi tôi nhận được tất cả các công cụ đường ống và awk đã tìm ra để tự động hóa nó. – afarnham

+1

./flashplayer http://example.com/example.swf & sleep 3 && ~/xsendkey -window "Adobe Flash Player 10" Control + F – afarnham

+0

mất nhiều thời gian :) Nhưng cảm ơn bạn đã chia sẻ! – ypnos

1

Tôi đã thực sự làm điều này trong một thời gian dài trước đây, nhưng đó không phải là nhỏ. Những gì chúng tôi đã làm là sử dụng Sawfish window manager và viết một móc để nhận ra cửa sổ trình phát flash, sau đó loại bỏ tất cả các đồ trang trí và chụp toàn màn hình. Điều này có thể xảy ra mà không cần sử dụng trình quản lý cửa sổ, bằng cách đăng ký các sự kiện tạo cửa sổ X từ một ứng dụng bên ngoài, nhưng tôi không đủ quen thuộc với X11 để cho bạn biết điều đó sẽ được thực hiện như thế nào.

Một tùy chọn khác là viết ứng dụng pygtk nhúng trình phát flash độc lập vào trong gtk.Socket và sau đó thay đổi kích thước. Sau một chút suy nghĩ, đây có thể là đặt cược tốt nhất của bạn.

0

Tôi đã làm điều này bằng Openbox sử dụng một cơ chế tương tự như một trong đó bmdhacks đề cập đến. Điều mà tôi đã lưu ý từ việc này là trình phát flash độc lập thực hiện màn hình toàn màn hình kém hơn đáng kể so với cùng một trình phát trong cửa sổ chưa được tối ưu hóa. (điều đó, khó chịu không phải là toàn màn hình chính xác vì thanh thực đơn). Tôi đã tự hỏi về việc chạy nó với một chủ đề gtk tùy chỉnh để làm cho menu vô hình. Đó chỉ là vấn đề hiệu suất. Nếu toàn màn hình hiện hoạt động ok, thì nó hoàn toàn phức tạp. Tôi đã chạy trên một OLPC XO, hiệu suất là một vấn đề ở đó.

Tôi không có nhiều may mắn với nspluginplayer (quá lỗi tôi nghĩ).

Cuối cùng, tôi đã có được sự sáng tạo của đèn flash đang chạy để tôi có thể chỉ cần đặt mã vào chính flash. Bởi một mã thông báo tương tự, Vì bạn có thể nhúng flash trong flash, nên có thể tạo một swf nhỏ mà tự động toàn màn hình và chứa sfw đích.

0

Bạn phải sử dụng Acton kịch bản 3 cmd:

stage.displayState = StageDisplayState.FULL_SCREEN; 

Xem Adobe Action script 3 lập trình.

Nhưng hãy cẩn thận: toàn màn hình, bạn sẽ mất màn trình diễn!

Tôi gặp sự cố này ... nhiều hơn trong Linux !!!

1

Một tùy chọn khác là viết ứng dụng pygtk nhúng trình phát flash độc lập vào trong gtk.Socket và sau đó thay đổi kích thước. Sau một chút suy nghĩ, đây có thể là đặt cược tốt nhất của bạn.

Đây chính xác là những gì tôi đã làm. Thêm vào đó, trình phát của tôi chia tỷ lệ nội dung flash qua Xcomposite, Xfixes và Cairo. Một .deb bao gồm nguồn python được tìm thấy tại đây: http://www.crutzi.info/crutziplayer

Các vấn đề liên quan