TotalMedia Theatre 6 External Player Fix
#1
Hi,

I'm new here but I've been hovering around XBMC for a while now. I've lately been trying to get my HTPC set up and am having a little bit of trouble getting the external player code to work. at the moment I've got it launching only on DVD and BR playback and for the most part it works in true fullscreen mode... but there's a few things I would like to fix up if possible.

First off this is how I launch TMT6 at the moment (the only way I can seem to get it working... and I've tried a lot). First Ive set up my playercorefactory.xml to link to a .bat command which then launches TMT6 directly into the disc.
Quote:<playercorefactory>
<players>
<player name="arcsoft" type="ExternalPlayer" audio="false" video="true">
<filename>C:\Program Files (x86)\XBMC\bd.cmd</filename>
<args>"{1}" /fullscreen /close</args>
<hidexbmc>false</hidexbmc>
<hideconsole>false</hideconsole>
<warpcursor>none</warpcursor>
</player>
</players>

<rules action="prepend">
<rule filetypes="bd|dvd" player="arcsoft"/>
</rules>

</playercorefactory>

And my .cmd, bd.cmd is
Quote:"C:\Program Files (x86)\ArcSoft\TotalMedia Theatre 6\uMCEPlayer6.exe" D:

This minimizes the XBMC window and brings the cmd prompt to the front which works but is ugly. I've messed around with some .vbs files and autoit to try to minimize XBMC run the uMCEPlayer6.exe and then on exit to maximise XBMC... but no luck. The furthest I've gotten, which is with autoit (sorry I cant remember the exact commands used) and it allowed me to minimize or close XBMC and open uMCEPlayer.exe with no ugly command prompt windows, but when it came to closing uMCEPlayer.exe it did not reopen/restart XBMC. It seems to be a problem with the ProccessWaitClose and the WinWaitClose commands in Autoit not recognising TMT6's process or window (possibly a naming error from me but I think not). So I've come to the conclusion that what I need it to write an .exe from AutoIt that minimizes/closes XBMC, opens TMT6 directly to disc, then on pressing the backspace key (which closes uMCEPlayer6.exe) maximizes/reopens XBMC. And thats where I'm stuck, I have a very limited knowledge of the AutoIt Commands so I'm not sure how to do this or if it is possible from AutoIt.
Does anyone Know and commands that will allow this?
I will post up a final product when I have it working as a reference for other people.
I apologize if this is posted in the wrong place.
Thanks,
Jak.
Reply
#2
Ok I got it working created this autoit application (playdisc.exe)
Quote:WinSetState ( "XBMC", "", @SW_MINIMIZE )
run ( '"C:\Program Files (x86)\ArcSoft\TotalMedia Theatre 6\uMCEPlayer6.exe" "D:"' )
ProcessWaitClose ( "uMCEPlayer6.exe" )
WinSetState ( "XBMC", "", @SW_MAXIMIZE )

and playercorefactory.xml
Quote:<playercorefactory>
<players>
<player name="arcsoft" type="ExternalPlayer" audio="false" video="true">
<filename>C:\Program Files (x86)\ArcSoft\TotalMedia Theatre 6\Playdisc.exe</filename>
<args>"{1}" /fullscreen /close</args>
<hidexbmc>false</hidexbmc>
<hideconsole>false</hideconsole>
<warpcursor>none</warpcursor>
</player>
</players>

<rules action="prepend">
<rule filetypes="bd|dvd" player="arcsoft"/>
</rules>

</playercorefactory>

and all is working, im not sure what ive been doing wrong but i've found my solution.
Reply
#3
Ok, I'm having a bit more trouble. I've decided to change tactics slightly as this method works flawlessly on my laptop, it doesnt work on my HTPC which is set to XBMC as Shell. The problem is it wont minimize my XBMC so ive gone to the method of closing the open XBMC window, opening the TMT6 media player, then waiting for that to close before launching XBMC again. The problem is that it wont relaunch XBMC (thinking it has something to do with admin restrictions possibly) when I launch the autoit script from XBMC, though it does work if I launch it from explorer. I'm not sure what I'm doing wrong but there has to be a way around this. Is there any way to tell eventghost to launch XBMC when uMCEPlayer.exe is closed? It may be an easy workaround as I've tried all the simple options I know of in AutoIt.
Reply
#4
I use a similar setup (not XBMC as shell though). I didn't want you to think you're talking to yourself, so I'm just posting to say this is on my list to look at today. Smile
Reply
#5
I'm going to explain the way I'm using AutoIt, but I do have one question. How do you close TMT? I see that (in your original script anyway), you wait until TMT exits to reactivate XBMC. That might be where your problem lies.

Anyway, here goes.

I finally decided to unitask on the HTPC, so I quit XMBC anytime I launch an external player. So the AutoIt script that gets called when I want to play a disc is:
Code:
#include <libQuitAll.au3>

quitAll()
Run ("C:\Program Files\ArcSoft\TotalMedia Theatre 6\uMCEPlayer6.exe D:")
WinWait ("ArcSoft TotalMedia Theatre 6 for Windows Media Center")
WinActivate ("ArcSoft TotalMedia Theatre 6 for Windows Media Center")
Sleep (20000)
MouseClick ("primary", 0, 40)

I'll explain quitAll() at the end. The sleep and mouseclick is to make sure that the player is actually at the front and able to accept remote/keyboard commands.

When I'm ready to go back to XBMC, I have a button on my remote that will reactivate XBMC no matter what external player I'm using. That button activates this script:

Code:
#include <libQuitAll.au3>

quitAll()
Run ("C:\Program Files\XBMC\XBMC.exe")
sleep(2000)
MouseClick ("primary", 0, 40)

And now about quitAll. I wrote a function that checks for all my possible external players and XBMC and quits whatever is active.

Code:
Func quitAll ()
    if ProcessExists ("XBMC.exe") Then
        ProcessClose ("XBMC.exe")
    EndIf
    if ProcessExists ("uMCEPlayer6.exe") Then
        WinClose ("ArcSoft TotalMedia Theatre 6 for Windows Media Center")
    EndIf
    if ProcessExists ("QuicktimePlayer.exe") Then
        WinClose ("[CLASS:QuickTimePlayerMain]", "")
    EndIf
    if ProcessExists ("wmplayer.exe") Then
        WinClose ("Windows Media Player")
    EndIf
   if ProcessExists ("ehshell.exe") Then
        WinClose ("Windows Media Center")
    EndIf
EndFunc

It's in a file called libQuitAll.au3, and I put it in C:/Program Files/AutoIt3/Include. I think there is a way to get the include function to point somewhere else, but I could never get it to work right unless I put it in the Program Files location above.

Hope that helps.
Reply
#6
Thanks for the reply,

To close TMT I use the back button on my remote which imitates the backspace key, and I would prefer to keep using it if possible. Otherwise I would set it up to be a key on my remote to watch disc or watch XBMC and remove the play disc function from within XBMC which would be tolerable but I would then have to make sure that the back button doesn't exit TMT. I'll have a play around with it and see what I can come up with.
Reply
#7
Hi everybody,
I want to use pot player and tmt6 together. Then I saved the code but it didn't play. What is my wrong?

Code:
<playercorefactory>
<players>
   <player name="PotPlayerMini" type="ExternalPlayer" audio="false" video="true">
     <filename>C:\Program Files (x86)\Daum\PotPlayer\ PotPlayerMini.exe</filename>
     <args>"{1}" /fullscreen /close</args>
     <hidexbmc>false</hidexbmc>
     <hideconsole>false</hideconsole>
     <warpcursor>none</warpcursor>
   </player>
   <player name=" uLaunchTMT6" type="ExternalPlayer" audio="false" video="true">
     <filename> C:\Program Files (x86)\ArcSoft\TotalMedia Theatre 6\ uLaunchTMT6.exe</filename>
     <args>"{1}" /fullscreen /close</args>
     <hidexbmc>false</hidexbmc>
     <hideconsole>false</hideconsole>
     <warpcursor>none</warpcursor>
   </player>
</players>
<rules action="prepend">
   <rule filetypes="mkv|m2ts|mov|bdmv|mpls" player=" PotPlayerMini "/>
   <rule filetypes="iso|bd|dvd" player=" uLaunchTMT6"/>
</rules>
</playercorefactory>
Reply

Logout Mark Read Team Forum Stats Members Help
TotalMedia Theatre 6 External Player Fix0