[vlc] Re: vlc mozilla plugin and drop-down menu under firefox
Jean-Paul Saman
jean-paul.saman at planet.nl
Mon May 21 19:59:54 CEST 2007
ml wrote:
> Hi,
> After some effort I was able to compile the mozilla vlc plugin under Linux.
> The purpose for me was to build a simple multi-playlist under Firefox in
> order to watch the "Multiposte" channels available through the Freebox
> in France.
> This was done about 2 months ago. For this time I have been able to
> listen and watch radio and TV under firefox while doing other things
> with the latter.
>
> In order to compile againt the mozilla source you'll have to retreive
> the source of mozilla (or firefox) and to compile it not entirely but
> enough to have the directory mozilla/dist/sdk compiled.
>
> It works well ... when firefox doesn't crash (that the case half time) :
> I built a serie of drop down menus to select TV or Radio channels coming
> from the Freebox of from elsewhere (Radio Italia for example).
> The OSD works and full screen is supported.
>
> Here is the modified vlcplugin.cpp that contains the necessary options
> to the VLC command line. It's a diff against the 0.86b version of VLC.
The options below can be passed to the standard vlc browser plugin with
vlc.playlist.addTarget(mrl,name,options); JS function. See the
documentation.
Gtz,
Jean-Paul Saman.
>
> ------------------------------------------------------------------------
>
> 50a51
> > p_scriptObject(NULL),
> 74a76
> > char parg[30];
> 176a179,198
> > else if( !strcmp( argn[i], "video"))
> > {
> > if( !boolValue(argv[i]) )
> > {
> > ppsz_argv[ppsz_argc++] = "--no-video";
> > }
> > }
> > else if( !strcmp( argn[i], "ts-es-id-pid" ) )
> > {
> > if( boolValue(argv[i]) )
> > {
> > ppsz_argv[ppsz_argc++] = "--ts-es-id-pid";
> > }
> > }
> > else if( !strcmp( argn[i], "audio-track-id" ) )
> > {
> > strcpy(parg, "--audio-track-id=") ;
> > strcat ( parg, argv[i] ) ;
> > ppsz_argv[ppsz_argc++] = parg;
> > }
> 183a206,207
> > for( int i = 0; i < ppsz_argc ; i++ )
> > fprintf(stderr, "%s ", ppsz_argv[i]);
> 285a310,311
> > if( p_scriptObject )
> > NPN_ReleaseObject(p_scriptObject);
> 439a466,474
> > NPObject* VlcPlugin::getScriptObject()
> > {
> > if( NULL == p_scriptObject )
> > {
> > p_scriptObject = NPN_CreateObject(p_browser, p_scriptClass);
> > }
> > return NPN_RetainObject(p_scriptObject);
> > }
> >
>
> ------------------------------------------------------------------------
>
> Here are a few extracts of the full document written. It aims at showing
> what can be done in order to build a drop down menu
>
> /* A JSON writing of the channels object */
> channels = {
> france2: {
> name:"France 2",
> type:"tv",
> target:"201",
> logo:"france2.png"
> },
> france3: {
> name:"France 3 national",
> type:"tv",
> target:"202",
> logo:"france3.png"
> },
> france5: {
> name:"France 5",
> type:"tv",
> target:"203",
> logo:"france5.png"
> },
> arte: {
> name:"Arte",
> type:"tv",
> target:"204",
> logo:"arte.png"
> },
> lemouv: {
> name:"Le Mouv'",
> type:"radio",
> track:"1007",
> target:"110022",
> logo:"lemouv.png"
> },
> ritalia: {
> name:"Radio Italia",
> type:"webradio",
> target:"mms://radioitalia.wm.p1.str3.com/rditaliahq",
> logo:"ritalia.png"
> }
> }
>
> /* screen points about the node corresponding to the "screen" div. */
> var screen = document.getElementById("screen");
>
> /* The plugin is embedded into the screen */
> var embed = document.createElement("embed");
>
> /* Correct attributes of the embed tag are set */
> /* depending whether it's a radio, tv or film */
> embed.setAttribute("type", "application/x-vlc-plugin");
> embed.setAttribute("name", "frame");
> embed.setAttribute("autoplay", "yes");
> if ( channel.type == "radio" ) {
> embed.setAttribute("hidden", "no");
> embed.setAttribute("video", "0");
> embed.setAttribute("ts-es-id-pid", "yes");
> embed.setAttribute("audio-track-id", channel.track);
> embed.setAttribute("width", "1px");
> embed.setAttribute("height", "1px");
> embed.setAttribute("target",
> "rtsp://mafreebox.freebox.fr/freeboxtv/" + channel.target);
> }
>
> screen.appendChild ( embed );
> /* Function to play the stream */
> function play(){
> document.frame.play();
> }
>
> /* Function to stop the stream */
> function stop(){
> document.frame.stop();
> }
>
> /* Method to make fullscreen (if you want a button to do it beacause
> a double click on the screen is enough) */
> function fullscreen(){
> document.frame.fullscreen();
> }
>
> Have fun !
> db
>
--
This is the vlc mailing-list, see http://www.videolan.org/vlc/
To unsubscribe, please read http://www.videolan.org/support/lists.html
More information about the vlc
mailing list