Difference between revisions of "Parcel media"

From Second Life Wiki
Jump to navigation Jump to search
(Initial Parature import)
Line 1: Line 1:
[[Category: Linden Lab Projects]]
{{Seal}}
='''Media On A Parcel'''=
==Overview==
This document has been rewritten to focus on higher level design details.  More specific implementation details are available upon request.


The purpose of this project is to shore up and expand support for Media within Second Life.  Currently we support a single Quicktime URL per parcel, which is used in place of a given texture.  We plan to rewrite the underlying Media Library and expand it to support a wide variety of Internet Media types, such as HTML and Flash.  Also we will support Media display in other areas of Second Life, such as the HUD and on individual Prims.


The Project will deploy in several milestones.  The first of these will deliver the underlying re-architecture of the Media Library and support for HTML on a parcel.  Subsequent milestones will provide for Media in the HUD, multiple URLs per parcel, and implement new Media Type support.


* [[MediaForum |Transcript of SLDev Forum, 2 Oct 07]]




==Project Justification==
{{KBcaution|Maturity ratings and media access]].
===Problems We Are Solving===
}}
* The current system will scale poorly given our long-term goal of a media-rich environment.
* The media type to media decoder associations are hard coded.
* The system is dependent on the Viewer, which contributes to viewer complexity and hampers viewer abstraction initiatives.
* It's currently only possible to have one media URL per parcel even if your system can support more.
* Current location of embedded browser (hosted in client UI code via LLWebBrowserCtrl) cannot be used as a media source. A better approach is to move the implementation to the media library and replace the "Web Browser Control" widget with a more generalized "Media Widget".
* Current implementation is strongly coupled to parcel concept. Long term goals require more flexible support so that media can be used anywhere in client - for example, the HUD.


===Pros===
* Rewriting and documenting the Media Library API will allow for easier integration of new media types, which hopefully will involve our open source community.
* Extricating the media library from the Viewer as much as possible will decrease Viewer complexity and hopefully contribute to greater Viewer stability long term.  Debugging the Media Library will be easier as well. 
* Creating a data-driven media association path will remove the compile requirements for changing media type to impl associations.


===Cons===
The media on a parcel feature allows landowners to select and display a wide range of web-based media content, including web pages, movies, images, text documents and audio. This feature replaces and expands the existing Quicktime parcel media feature, giving you more flexibility in your media presentations. Currently, the displayed media is entirely non-interactive, meaning you will not be able to click web links, use scroll bars, or press buttons on web pages displayed on parcels.
* Any change to this code has the potential to introduce bugs and break functionality.
* This project does conceive of new features, and therefore is not purely a refactoring of existing code.
* While media support on a parcel does address long-term goals, it is less relevant to near-term stability and new-user experience initiatives.




== Requirements ==
The new system will:


* Support a wider variety of media types.
* Provide a plug-in like architecture for adding new media type support.
* Allow residents to specify more than one URL per parcel.
* Allow the viewer to display URLs in HUD and on prims
* Support a shared interaction experience


{{KBtrivia| '''Trivia:''' The Second Life viewer uses a modified version of the Mozilla web browser to connect directly to web content. As a result, the web pages you see can potentially differ from what other Residents see depending on locally stored cookies and authentication information on your computer.
}}


== Design ==
* The Media Library will use common MIME types and URL Scheme to map URLs to specific decoders in the Library.
* These will all be part of the SL Viewer Open Source project.


==The About Land Window==


===Media Setup===
* The parcel owner will initially set the URL in the About Land dialog, and will add information such as Type and Media Size if applicable.
* They also specify the ID of the Texture to replace with this URL.
* This information is stored on the server side with the rest of the Parcel information.
* If the parcel owner is unsure of the media type a lookup can be done of the URL header.
[[Image:AboutLandMedia.png|thumb]]


The Media tab of the About Land window contains many options for displaying media on your land in Second Life. To access the About Land window for a parcel of land, right-click the ground and select '''About Land.''' You must own the parcel, or have sufficient [[Group Roles|group abilities]] on a group-owned parcel in order to modify the land's media settings.


===Playing Media===
* When a resident enters a parcel which has a media URL defined, an appropriate UI control pops up allowing the resident to load the media.
* When the resident invokes the media control the Media Library begins decoding the media based on the MIME type for the media.
* Frames will appear on any face displaying the texture ID specified in the Media Setup.
* Milestone 2 will also add support for displaying media in the HUD, so rather than being drawn in world, the media would appear on a UI widget displayed in the HUD.


===Supported Media Types===
[[Image:kb_About_Land_Media_tab.png]]
* Implemented in Milestone 1
** QuickTime (refactor existing one and make sure we're using the latest version of the QuickTime SDK)
** Mozilla (Will use existing version that's in the client - updating that is another project)


* Implemented in Milestone 2
** Opera (Alternative impl for handling Web based content - based on Opera browser 9.5)
** Flash


* Implemented sometime in the future by us or ideally, by residents:
* '''Media Type''' - When you enter a Media URL, Second Life will try to automatically determine its Media Type. This drop-down list allows you to override the media you would like to play on your land. You should use this option if the Media Type is set incorrectly, or set to '''No Content'''. The text to the right of this dropdown box displays the media's MIME type.
** PDF (perhaps via this cross platform SDK http://www.foxitsoftware.com/pdf/sdk/dll/)
*  
** Ultra lightweight text renderer (perhaps via AntiGrain http://www.antigrain.com/demo/index.html)
* '''Media URL''' - This is the address of the media you would like to show on your parcel. For example, http://wiki.secondlife.com is the URL for Second Life's wiki documentation. You can set the Media URL by pressing the '''Set...''' button and entering the new URL into the popup window that appears.[[Image:kb_About_Land_Media_tab_change_URL.png]]
** Ultra lightweight SVG renderer (perhaps via AntiGrain http://www.antigrain.com/svg/index.html)
*
** Flickr -e.g. flickr://keyword/dog/rand  or flickr://interestiness/date/20070410/rand
* '''Replace Texture''' - Objects using this texture will display your movie or web page after you click the Play arrow. To change the texture, click the box containing the texture.
** VNC
*
* '''Media Options'''
** '''Auto scale -''' Checking this option will scale the content for this parcel automatically. It may be slightly slower and lower in visual quality, but no other texture scaling or alignment is required.
**
** '''Loop Media -''' Play media in a loop. When the media has finished playing, it will automatically start again from the beginning. This option is only available for video media types
**
** '''Hide Media URL''' - Checking this option will hide the Media URL from unauthorized viewers of this parcel's media information. This option is not available for HTML media types.
**
** '''Hide Music URL''' - Checking this option will hide the Music URL from unauthorized viewers of this parcel's media information.
**  
** '''Media Size''' - Allows you to define the size of the displayed media, in pixels. This option is not available for video media.
**
* '''Music URL''' - [[How to play streaming music in Second Life|See "How to play streaming music in Second Life".]]
* '''Sound: Restrict gesture and object sounds to this parcel''' - Enabling this means an avatar needs to be on this parcel to hear gesture and object sounds originating from within it. This is useful if you have environmental ambience like birdsong and don't want to disturb the neighbors, or if you have an Adult-rated establishment and prefer that passerby don't hear sexually explicit noises. As cautioned above, maturity ratings take precedence.
* '''Voice'''
* ** '''Enable Voice''' - This is turned on by default and means people on this parcel can use [[Voice FAQ|voice chat]] to communicate. However, if voice is disabled at the estate level (in '''World''' > '''Region/Estate''' then click '''Estate''' tab), this and '''Restrict Voice to this parcel''' will be grayed out.
** '''Restrict Voice to this parcel''' - Similar to '''Restrict gesture and object sounds to this parcel''', enabling this prevents voice chat from being heard by avatars unless they're on this parcel. Good if you want to have a spatial voice chat "in the open" yet maintain some privacy.




==Use cases==
==The Tools Window==
Please feel free to add any use cases which are not already covered.  We want to make this system address Resident needs as much as possible.


* Parcel owner wants to use a number of web hosted sounds to form a parcel wide soundtrack which doesnt rely on inworld uploaded sounds


* Parcel owner wants to display some static signage on his parcel
There are two media-related '''When Left-Clicked''' options available in the Tools window:
** This can be done but the visitor will have to hit 'start' before they see it.


* Parcel owner wants to display dynamic content on his parcel - e.g. Twitter stream
** (once visitor presses 'start', this will work as expected)
** This can be done with live RSS-XML parsing on a script in a multi-prim object containing high-quality textures, sounds, and appropriate XyText font. For example, XyText-powered media information screens for internet radio feeds. -[[User:Smiley Barry|Smiley B.]] .


* Parcel owner puts a Web page containing a slide show that has transport controls built into the Web page
# To access the Object Editor, right-click an object and select '''Edit'''.
** This works but each parcel visitor will see the slide show independently. If one user presses 'NEXT SLIDE' control, no one else will see it.
# Click the '''More >>''' button to expend the Object Editor.
# Select an option from '''When Left-Clicked:'''
#* '''Play parcel media:''' When the object is clicked, it will act as a "Play/Pause" button for the parcel's media stream. The same effect can be achieved by pressing the Play button in the lower-right corner of your Viewer.
#*  
#* '''Open parcel media:''' When the object is clicked, your browser of choice will attempt to open the parcel media URL. Depending upon your Preferences, this can be the Viewer's Media Browser window, or an external web browser. This option will not work on a movie media type.
#*


* Parcel owner puts a Web page containing a slide show that has transport controls via a scripted object on the parcel
** Each parcel visitor will see the same URL


* Parcel owner puts a Web page containing a slide show that has transport controls via a scripted object on the parcel and wants to disallow visitors changing the URL
<blockquote dir="ltr" style="margin-right: 0px"><blockquote dir="ltr" style="margin-right: 0px">
** [My lack of knowledge of LSL here means I can't answer this but I think it should be possible to only allow the transport control object (and therefore the URL) to be used by the parcel owner]


* Parcel owner puts a Web page containing a Flash game on his parcel
** The current version of LLMozLib doesn't support Flash interaction so this won't work.


* Parcel owner puts a Web page containing a Javascript game on his parcel
** This milestone doesn't support interaction with parcel media so this won't work


* Parcel owner wants to hide content behind a username/password set via .htaccess
** Won't work since we don't support username/password dialog - will have to implement using Web content


* Parcel owner wants a movie screen and a Web page with movie details on the same parcel.
{{KBtrivia| '''Trivia:''' These media types will ''always'' function as '''Play parcel media''' if the media is not already playing on your Second Life viewer.
** Works - raises some interesting questions about transport controls that appear at the bottom of the screen
}}
* Parcel owner wants to hand out personal, attachable media viewers for visitors to interact with their own chosen media streams: museum guide, lecture, mall
* User has a personal device which they want permission to set their own media texture for even when on a parcel which they do not have permission for - aka personalized radio, video viewer that works globally


* Parcel owner wants to leave a Web browser on their parcel so that visitors can browser
** Works as expected


* Parcel owner wants to create a controlled shared experience - viewing a sequence of images with next/previous links in the page itself
</blockquote></blockquote>
** Works as expected


* Parcel owner wants to join his fellow 'parcelees' and browse the Internet together
** Will work depending on the content but any page that is generated dynamically based on time, cookies etc. will most likely not work as expected.


* Parcel owner runs a class discussing literature/essays/work. Wants to distribute notecard with content AND discuss from a screen, possibly with editing and notes done pseudo live.
[[Image:kb_media_parcel_click_action.jpg]]
** Will need to be able to read more than 255 characters per line from dataserver/llGetNotecardLine. Formatting instructions


* Parcel owner wishes to run a class where students complete a standard form and have their material visibly displayed.


* Parcel owner runs scripting class and would like to be able to display, share and edit scripts live! (not currently even on the map), save possibly by cutting and pasting to a notecard.
==The Preferences Window==


* [http://en.wikipedia.org/wiki/AJAX AJAX] specialist creates an interactive product (like the iPhone) with interactive features.


Also: some ideas here: http://wiki.secondlife.com/wiki/User:Zero_Linden/Office_Hours/HTML_on_a_Prim_Use_Cases
The Web tab of the Preferences window allows you to choose your default media browser for Second Life:
 
 
* '''Use external web browser:''' If you select this option, all web hyperlinks in Second Life will open in your computer's default web browser (Firefox, Safari, Internet Explorer).
*
* '''Use built-in web browser:''' If you select this option, web hyperlinks in Second Life will open inside Second Life's media browser. Use this option to view web content without switching away from the Second Life viewer.
*
* '''Browser cache:''' Click the '''Clear Now''' button to clear the media browser's cache. This is ''not'' the same as [[How do I clear my Second Life cache|clearing Second Life's cache!]]
*
 
 
[[Image:kb_media_parcel_preferences_web_tab.jpg]]
 
 
The Audio &amp; Video tab includes a checkbox to '''Automatically play media when available'''. If you check this box, media will automatically play when you enter a parcel with a media URL and media texture set.
 
 
[[Image:kb_media_parcel_preferences_audiovideo_tab.jpg]]
 
 
==The Media Browser Window==
 
 
The media browser is a specialized Mozilla web browser you can use ''inside'' Second Life. It does many of the same things a normal web browser can do; type in a URL and press '''Go''' to navigate to a new web page. The '''Back''' and '''Forward''' buttons help you to navigate between previously-visited pages, and the '''Reload''' button refreshes your currently viewed media. The media browser also has a few buttons that are specific to Second Life:
 
 
* '''Send Current URL to Parcel:''' When pressed, this button replaces your current parcel media URL with the URL loaded in the media browser. You must own the land you are standing on, or have sufficient [[Group Roles|group abilities]] on group-owned land in order to use this button.
*
* '''Open in My Web Browser:''' Pressing this button opens the current media browser URL in your computer's default web browser (Firefox, Internet Explorer, Safari). You may wish to use this option if you wish to view web content that is not displaying properly inside Second Life.
*
* '''Always open in my web browser:''' If you check this box, web URLs will always open in your computer's default browser. You can reverse this setting on the '''Web''' tab of the Preferences window.
*
 
 
 
 
{{KBhint| '''Tip:''' If you set Second Life to use the built-in browser, you can quickly open the media browser at any time by pressing the '''F1''' key, which opens a link to the Support Portal.
}}
 
 
[[Image:kb_media_parcel_media_browser.jpg]]
 
 
==Want more?==
 
 
For some practical, hands-on education on how to use Parcel Media, check out these fantastic video tutorials by our own Torley Linden:
 
 
==Play movies, webpages &amp; more==
 
 
 
 
<videoflash type="vimeo">5399986</videoflash>
 
 
==Make your own Media screen==
 
 
<videoflash type="vimeo">4168087</videoflash>
 
 
==Click actions==
 
 
<videoflash type="vimeo">4168084</videoflash>
[[Category:Filming Audiovisual Extravaganzas]]
[[Category:Information for Renters]]
[[Category:Creators]]
[[Category:Educators]]
[[Category:Business Owners]]
[[Category:Menus and Controls]]
[[Category:Landowners]]
[[Category:Information for Landowners]]
[[Category:Working with Textures]]
[[Category:Knowledge Base]]

Revision as of 08:03, 5 October 2009

Kb-seal.png

This article is part of the Extended Second Life Knowledge Base that includes advanced and specialized information. This information was originally provided by Linden Lab, but is not actively maintained nor guaranteed to be accurate. Linden Lab does not certify nor assume any responsibility for this information.

See the official Second Life Knowledge Base for the most current information.



KBcaution.png Important: Maturity ratings and media access]].


The media on a parcel feature allows landowners to select and display a wide range of web-based media content, including web pages, movies, images, text documents and audio. This feature replaces and expands the existing Quicktime parcel media feature, giving you more flexibility in your media presentations. Currently, the displayed media is entirely non-interactive, meaning you will not be able to click web links, use scroll bars, or press buttons on web pages displayed on parcels.



KBtrivia.png Trivia: Trivia: The Second Life viewer uses a modified version of the Mozilla web browser to connect directly to web content. As a result, the web pages you see can potentially differ from what other Residents see depending on locally stored cookies and authentication information on your computer.


The About Land Window

The Media tab of the About Land window contains many options for displaying media on your land in Second Life. To access the About Land window for a parcel of land, right-click the ground and select About Land. You must own the parcel, or have sufficient group abilities on a group-owned parcel in order to modify the land's media settings.


Kb About Land Media tab.png


  • Media Type - When you enter a Media URL, Second Life will try to automatically determine its Media Type. This drop-down list allows you to override the media you would like to play on your land. You should use this option if the Media Type is set incorrectly, or set to No Content. The text to the right of this dropdown box displays the media's MIME type.
  • Media URL - This is the address of the media you would like to show on your parcel. For example, http://wiki.secondlife.com is the URL for Second Life's wiki documentation. You can set the Media URL by pressing the Set... button and entering the new URL into the popup window that appears.Kb About Land Media tab change URL.png
  • Replace Texture - Objects using this texture will display your movie or web page after you click the Play arrow. To change the texture, click the box containing the texture.
  • Media Options
    • Auto scale - Checking this option will scale the content for this parcel automatically. It may be slightly slower and lower in visual quality, but no other texture scaling or alignment is required.
    • Loop Media - Play media in a loop. When the media has finished playing, it will automatically start again from the beginning. This option is only available for video media types
    • Hide Media URL - Checking this option will hide the Media URL from unauthorized viewers of this parcel's media information. This option is not available for HTML media types.
    • Hide Music URL - Checking this option will hide the Music URL from unauthorized viewers of this parcel's media information.
    • Media Size - Allows you to define the size of the displayed media, in pixels. This option is not available for video media.
  • Music URL - See "How to play streaming music in Second Life".
  • Sound: Restrict gesture and object sounds to this parcel - Enabling this means an avatar needs to be on this parcel to hear gesture and object sounds originating from within it. This is useful if you have environmental ambience like birdsong and don't want to disturb the neighbors, or if you have an Adult-rated establishment and prefer that passerby don't hear sexually explicit noises. As cautioned above, maturity ratings take precedence.
  • Voice
  • ** Enable Voice - This is turned on by default and means people on this parcel can use voice chat to communicate. However, if voice is disabled at the estate level (in World > Region/Estate then click Estate tab), this and Restrict Voice to this parcel will be grayed out.
    • Restrict Voice to this parcel - Similar to Restrict gesture and object sounds to this parcel, enabling this prevents voice chat from being heard by avatars unless they're on this parcel. Good if you want to have a spatial voice chat "in the open" yet maintain some privacy.


The Tools Window

There are two media-related When Left-Clicked options available in the Tools window:


  1. To access the Object Editor, right-click an object and select Edit.
  2. Click the More >> button to expend the Object Editor.
  3. Select an option from When Left-Clicked:
    • Play parcel media: When the object is clicked, it will act as a "Play/Pause" button for the parcel's media stream. The same effect can be achieved by pressing the Play button in the lower-right corner of your Viewer.
    • Open parcel media: When the object is clicked, your browser of choice will attempt to open the parcel media URL. Depending upon your Preferences, this can be the Viewer's Media Browser window, or an external web browser. This option will not work on a movie media type.




KBtrivia.png Trivia: Trivia: These media types will always function as Play parcel media if the media is not already playing on your Second Life viewer.



Kb media parcel click action.jpg


The Preferences Window

The Web tab of the Preferences window allows you to choose your default media browser for Second Life:


  • Use external web browser: If you select this option, all web hyperlinks in Second Life will open in your computer's default web browser (Firefox, Safari, Internet Explorer).
  • Use built-in web browser: If you select this option, web hyperlinks in Second Life will open inside Second Life's media browser. Use this option to view web content without switching away from the Second Life viewer.
  • Browser cache: Click the Clear Now button to clear the media browser's cache. This is not the same as clearing Second Life's cache!


Kb media parcel preferences web tab.jpg


The Audio & Video tab includes a checkbox to Automatically play media when available. If you check this box, media will automatically play when you enter a parcel with a media URL and media texture set.


Kb media parcel preferences audiovideo tab.jpg


The Media Browser Window

The media browser is a specialized Mozilla web browser you can use inside Second Life. It does many of the same things a normal web browser can do; type in a URL and press Go to navigate to a new web page. The Back and Forward buttons help you to navigate between previously-visited pages, and the Reload button refreshes your currently viewed media. The media browser also has a few buttons that are specific to Second Life:


  • Send Current URL to Parcel: When pressed, this button replaces your current parcel media URL with the URL loaded in the media browser. You must own the land you are standing on, or have sufficient group abilities on group-owned land in order to use this button.
  • Open in My Web Browser: Pressing this button opens the current media browser URL in your computer's default web browser (Firefox, Internet Explorer, Safari). You may wish to use this option if you wish to view web content that is not displaying properly inside Second Life.
  • Always open in my web browser: If you check this box, web URLs will always open in your computer's default browser. You can reverse this setting on the Web tab of the Preferences window.



KBtip2.png Tip: Tip: If you set Second Life to use the built-in browser, you can quickly open the media browser at any time by pressing the F1 key, which opens a link to the Support Portal.


Kb media parcel media browser.jpg


Want more?

For some practical, hands-on education on how to use Parcel Media, check out these fantastic video tutorials by our own Torley Linden:


Play movies, webpages & more

<videoflash type="vimeo">5399986</videoflash>


Make your own Media screen

<videoflash type="vimeo">4168087</videoflash>


Click actions

<videoflash type="vimeo">4168084</videoflash>