Kodi Community Forum

Full Version: Problem with playercorefactory or smb parsing to external player?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi folks,
here i come with a strange problem which i hope you can help to solve.

I am running Kodi 15.2 on an Android tablet with no problems, everything works fine.
In order to stream online content to my Chrome-cast with BubbleUpnP i have a "playercorefactory.xml" which is in my "Android/data/....." folder. Everything fine, no problems

Now:
I have several movies in my red which i integrated into my Movie library on Android. Working perfect, but when i click on the movie they won´t play at all. For testing purpose i deleted the "playercorefactory.xml" file, started Kodi again and the movies play fine in Kodi itself.
I also tested to play the movies accessing them by "library sharing" from my Kodi (PC where the movie files are stored). Those play fine and stream via BubbleUpnp to Chromecast when the "playercorefactory.xml" is in the "Android/data/..." folder.

So as this behaviour also happens with Localcast, MX Player, etc. it seams to be a smb sharing/parsing problem.
I would love to integrate the movies of my Red into the Android Kodi library - streaming them with BubbleUpnp and not accessing them via "library sharing"

Above the xml and a part of the debug log with the smb parsing error.
I saw in other threads that this problem happened with much earlier Kodi builds, seams its back again - at least on Android devices.

Code:
<playercorefactory>
    <players>
        <!-- MXPlayer Free definition -->
        <player name="MX Playerfree" type="ExternalPlayer" audio="false" video="true">
            <!-- Android intent -->
            <filename>com.mxtech.videoplayer.ad</filename>
            <!-- Hide XBMC -->
            <hidexbmc>true</hidexbmc>
            <!-- After 2 minutes bump the play count of the item in XBMC -->
            <playcountminimumtime>120</playcountminimumtime>
        </player>

        <!-- MX Player Pro definition -->
        <player name="MX Player Pro" type="ExternalPlayer" audio="false" video="true">
            <!-- Android intent -->
            <filename>com.mxtech.videoplayer.pro</filename>
            <!-- Hide XBMC -->
            <hidexbmc>true</hidexbmc>
            <!-- After 2 minutes bump the play count of the item in XBMC -->
            <playcountminimumtime>120</playcountminimumtime>
        </player>

        <!-- Plex definition -->
        <player name="Plex" type="ExternalPl Mkayer" audio="false" video="true">
            <!-- Android intent -->
            <filename>com.plexapp.plex</filename>
            <!-- Hide XBMC -->
            <hidexbmc>true</hidexbmc>
            <!-- After 2 minutes bump the play count of the item in XBMC -->
            <playcountminimumtime>120</playcountminimumtime>
        </player>

        <!-- Avia definition -->
        <player name="Avia" type="ExternalPlayer" audio="false" video="true">
            <!-- Android intent -->
            <filename>com.videon.android.mediaplayer</filename>
            <!-- Hide XBMC -->
            <hidexbmc>true</hidexbmc>
            <!-- After 2 minutes bump the play count of the item in XBMC -->
            <playcountminimumtime>120</playcountminimumtime>
        </player>

        <!-- VLC Player definition -->
        <player name="VLC" type="ExternalPlayer" audio="false" video="true">
            <!-- Android intent -->
            <filename>org.videolan.vlc</filename>
            <!-- Hide XBMC -->
            <hidexbmc>true</hidexbmc>
            <!-- After 2 minutes bump the play count of the item in XBMC -->
            <playcountminimumtime>120</playcountminimumtime>
        </player>

        <!-- Allcast definition -->
        <player name="Allcast" type="ExternalPlayer" audio="false" video="true">
            <!-- Android intent -->
            <filename>com.koushickdutta.cast</filename>
            <!-- Hide XBMC -->
            <hidexbmc>true</hidexbmc>
            <!-- After 2 minutes bump the play count of the item in XBMC -->
            <playcountminimumtime>120</playcountminimumtime>
        </player>

        <!-- RockPlayer Lite definition -->
        <player name="RockPlayerLite" type="ExternalPlayer" audio="false" video="true">
            <!-- Android intent -->
            <filename>com.redirectin.rockplayer.android.unified.lite</filename>
            <!-- Hide XBMC -->
            <hidexbmc>true</hidexbmc>
            <!-- After 2 minutes bump the play count of the item in XBMC -->
            <playcountminimumtime>120</playcountminimumtime>
        </player>

        <!-- BubbleUPnP definition -->
        <player name="BubbleUPnP" type="ExternalPlayer" audio="false" video="true">
            <!-- Android intent -->
            <filename>com.bubblesoft.android.bubbleupnp</filename>
            <!-- Hide XBMC -->
            <hidexbmc>true</hidexbmc>
            <!-- After 2 minutes bump the play count of the item in XBMC -->
            <playcountminimumtime>120</playcountminimumtime>
        </player>

        <!-- Localcast -->
        <player name="Localcast" type="ExternalPlayer" audio="false" video="true">
            <!-- Android intent -->
            <filename>de.stefanpledl.localcast</filename>
            <!-- Hide XBMC -->
            <hidexbmc>true</hidexbmc>
            <!-- After 2 minutes bump the play count of the item in XBMC -->
            <playcountminimumtime>120</playcountminimumtime>
        </player>

        <!-- Vget definition -->
        <player name="Vget" type="ExternalPlayer" audio="false" video="true">
            <!-- Android intent -->
            <filename>mb.videoget</filename>
            <!-- Hide XBMC -->
            <hidexbmc>true</hidexbmc>
            <!-- After 2 minutes bump the play count of the item in XBMC -->
            <playcountminimumtime>120</playcountminimumtime>
        </player>

        <!-- mVideoplayer Free definition -->
        <player name="mVideoplayerFree" type="ExternalPlayer" audio="false" video="true">
            <!-- Android intent -->
            <filename>afzkl.development.mVideoPlayer</filename>
            <!-- Hide XBMC -->
            <hidexbmc>true</hidexbmc>
            <!-- After 2 minutes bump the play count of the item in XBMC -->
            <playcountminimumtime>120</playcountminimumtime>
        </player>        

        <!-- Vplayer definition -->
        <player name="Vplayer" type="ExternalPlayer" audio="false" video="true">
            <!-- Android intent -->
            <filename>me.abitno.vplayer.t</filename>
            <!-- Hide XBMC -->
            <hidexbmc>true</hidexbmc>
            <!-- After 2 minutes bump the play count of the item in XBMC -->
            <playcountminimumtime>120</playcountminimumtime>
        </player>

        <!-- Vbukit Chromecast definition -->
        <player name="Vbukit Chromecast" type="ExternalPlayer" audio="false" video="true">
            <!-- Android intent -->
            <filename>com.creatingrevolutions.vbukitchromecast</filename>
            <!-- Hide XBMC -->
            <hidexbmc>true</hidexbmc>
            <!-- After 2 minutes bump the play count of the item in XBMC -->
            <playcountminimumtime>120</playcountminimumtime>
        </player>

          <!-- Vbukit definition -->
        <player name="Vbukit" type="ExternalPlayer" audio="false" video="true">
            <!-- Android intent -->
            <filename>com.creatingrevolutions.virtualbucket</filename>
            <!-- Hide XBMC -->
            <hidexbmc>true</hidexbmc>
            <!-- After 2 minutes bump the play count of the item in XBMC -->
            <playcountminimumtime>120</playcountminimumtime>
        </player>

        <!-- SopCast Player definition -->
        <player name="SopCast" type="ExternalPlayer" audio="false" video="true">
            <!-- Android intent -->
            <filename>org.sopcast.android</filename>
            <!-- Hide XBMC -->
            <hidexbmc>true</hidexbmc>
            <!-- After 2 minutes bump the play count of the item in XBMC -->
            <playcountminimumtime>120</playcountminimumtime>
        </player>

        <!-- Dolphin Web Browser definition -->
        <player name="Dolphin Browser" type="ExternalPlayer" audio="false" video="true">
            <!-- Android intent -->
            <filename>mobi.mgeek.TunnyBrowser</filename>
            <!-- Hide XBMC -->
            <hidexbmc>true</hidexbmc>
            <!-- After 2 minutes bump the play count of the item in XBMC -->
            <playcountminimumtime>120</playcountminimumtime>
        </player>
        
        <!-- Dolphin Jetpack definition -->
        <player name="Dolphin Jetpack" type="ExternalPlayer" audio="false" video="true">
            <!-- Android intent -->
            <filename>com.dolphin.browser.engine</filename>
            <!-- Hide XBMC -->
            <hidexbmc>true</hidexbmc>
            <!-- After 2 minutes bump the play count of the item in XBMC -->
            <playcountminimumtime>120</playcountminimumtime>
        </player>
        
        <!-- ES File Explorer definition -->
        <player name="ES File Explorer" type="ExternalPlayer" audio="false" video="true">
            <!-- Android intent -->
            <filename>com.estrongs.android.pop</filename>
            <!-- Hide XBMC -->
            <hidexbmc>true</hidexbmc>
            <!-- After 2 minutes bump the play count of the item in XBMC -->
            <playcountminimumtime>120</playcountminimumtime>
        </player>
        
        <!-- RemoteCast definition -->
        <player name="RemoteCast" type="ExternalPlayer" audio="false" video="true">
            <!-- Android intent -->
            <filename>com.benlc.camcast</filename>
            <!-- Hide XBMC -->
            <hidexbmc>true</hidexbmc>
            <!-- After 2 minutes bump the play count of the item in XBMC -->
            <playcountminimumtime>120</playcountminimumtime>
        </player>
        
        <!-- CheapCast definition -->
        <player name="CheapCast" type="ExternalPlayer" audio="false" video="true">
            <!-- Android intent -->
            <filename>at.maui.cheapcast</filename>
            <!-- Hide XBMC -->
            <hidexbmc>true</hidexbmc>
            <!-- After 2 minutes bump the play count of the item in XBMC -->
            <playcountminimumtime>120</playcountminimumtime>
        </player>
        
        <!--  definition -->
        <player name="" type="ExternalPlayer" audio="false" video="true">
            <!-- Android intent -->
            <filename></filename>
            <!-- Hide XBMC -->
            <hidexbmc>true</hidexbmc>
            <!-- After 2 minutes bump the play count of the item in XBMC -->
            <playcountminimumtime>120</playcountminimumtime>
        </player>
    </players>
    
    <!-- Rules for which external player to use -->
    <!-- Localcast is default
             change player= value to one of the above names to change this -->
    <rules action="prepend">
        
        <!-- Video files -- Default rule (last to ensure above trigger first -->
        <rule video="true" player="BubbleUPnP"/>
    </rules>
</playercorefactory>

Found an interesting error entry in the debug log
Code:
21:26:26 T:1745615488  NOTICE: ExternalPlayer Filename: com.bubblesoft.android.bubbleupnp
21:26:26 T:1745615488  NOTICE: ExternalPlayer Tweaks: hideconsole (false), hidexbmc (true), islauncher (false), warpcursor ()
21:26:26 T:1745615488  NOTICE: virtual bool CExternalPlayer::OpenFile(const CFileItem&, const CPlayerOptions&): smb://THOMAS-PC/E - Data/MIS VIDEOS/Movies/Game.m4v
21:26:26 T:18446744071794921216  NOTICE: Thread ExternalPlayer start, auto delete: false
21:26:26 T:18446744071794921216  NOTICE: virtual void CExternalPlayer::Process(): Player : com.bubblesoft.android.bubbleupnp
21:26:26 T:18446744071794921216  NOTICE: virtual void CExternalPlayer::Process(): File   : smb://THOMAS-PC/E - Data/MIS VIDEOS/Movies/Game.m4v
21:26:26 T:18446744071794921216  NOTICE: virtual void CExternalPlayer::Process(): Content:
21:26:26 T:18446744071794921216  NOTICE: virtual void CExternalPlayer::Process(): Args   :
21:26:26 T:18446744071794921216  NOTICE: virtual void CExternalPlayer::Process(): Start
21:26:26 T:18446744071794921216  NOTICE: virtual void CExternalPlayer::Process(): Hiding Kodi window
21:26:26 T:18446744071794921216  NOTICE: virtual BOOL CExternalPlayer::ExecuteAppAndroid(const char*, const char*): com.bubblesoft.android.bubbleupnp
21:26:26 T:18446744071794921216   ERROR: CXBMCApp::StartActivity - ExceptionOccurred launching com.bubblesoft.android.bubbleupnp
21:26:26 T:18446744071794921216  NOTICE: virtual BOOL CExternalPlayer::ExecuteAppAndroid(const char*, const char*): Failure
21:26:26 T:18446744071794921216  NOTICE: virtual void CExternalPlayer::Process(): Stop
21:26:26 T:18446744071794921216  NOTICE: virtual void CExternalPlayer::Process(): Showing Kodi window
Some further notice:
SMB parsing works when choosing a remote UPNP player via menu "play using...", even the BubbleUPnP local player on my Android device. But Bubble plays than only on my Android than.
Did you ever find a solution for this? I'm running into the exact same problem. Everything works fine locally, but then when I try and use LocalCast for files on the SMB share nothing happens.
external players won't recognize smb://THOMAS-PC/E - Data/MIS VIDEOS/Movies/Game.m4v unless they have samba built in as well
(2016-01-18, 10:36)wsnipex Wrote: [ -> ]external players won't recognize smb://THOMAS-PC/E - Data/MIS VIDEOS/Movies/Game.m4v unless they have samba built in as well

That may be right, but still a bug as BubbleUPNP supports samba. The same with MX Player.
For example, launching them from ES File Explorer works
I am getting the same behaviour on Jarvis Beta 5, this time with LocalCast and MX Player.

It is also not playing videos from the local phone filesystem. Add ons videos like from 1Channel, on the other hand, are indeed launching.
Unfortunately still no final solution when using playercorefactory.xml and localcast?