This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
media [2014/03/10 03:00] rudolf_streif |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | |||
- | ===== Summary ===== | ||
- | |||
- | |||
- | DLNA Media Player application allows user to play back audio and video content from local sources via tizen.content API and remote DLNA content via IVI WRT MediaServer API. Application uses HTML5 audio and video elements to playback content from sources. | ||
- | |||
- | Upper part of application contains a media content carousel (carouFredSel) in case audio content is selected or a rendered video (HTML5 video element). | ||
- | |||
- | Lower part of application contains basic information about played audio/video content like thumbnail, title, artist name, album name, duration and controls like play, pause, next, previous, volume. Additionaly Multimedia player application can be controlled using speech recognition via Speech component. | ||
- | |||
- | Audio/video content to be played can be selected from MultimediaLibary component. Playback of audio and video content is controlled by AudioPlayer component. | ||
- | |||
- | |||
- | ===== What the app does ===== | ||
- | |||
- | |||
- | Features for the Media Player home screen include the following: | ||
- | |||
- | * date and time | ||
- | * access to the Library | ||
- | * a thumbnail graphic for each track | ||
- | * track sequence order | ||
- | * duration of the track | ||
- | * controls to play, pause, go to the previous track, and the next track | ||
- | * shuffle ON/Off and repeat ON/OFF | ||
- | |||
- | Features for the Media Player Library include the following: | ||
- | |||
- | * icon/thumbnail or list view | ||
- | * access to the categories of ARTISTS, ALBUMS or ALL | ||
- | * single finger scroll | ||
- | |||
- | To launch the application the user touches the Media Player button (note icon) at the top of the device, or launch through Application Screen. | ||
- | |||
- | {{file:mediaplayer1.png?270x480}} | ||
- | |||
- | Once launched, the user must touch/tap the Library button to see the options for selecting music or videos. | ||
- | |||
- | {{file:mediaplayer2.png?270x480}} | ||
- | |||
- | Once in the Library, the user must then select either MUSIC or VIDEOS. The user can close the Library using the X on the top right. | ||
- | |||
- | {{file:mediaplayer3.png?270x480}} | ||
- | |||
- | The categories of ARTISTS, ALBUMS, and ALL are available. | ||
- | |||
- | The categories can be viewed in either list or thumbnail view. The library features one finger touch scrolling, so the user can tap any selection visible. | ||
- | |||
- | {{file:mediaplayer4.png?270x480}} {{file:mediaplayer5.png?270x480}} | ||
- | |||
- | The media player allows the user to play the track, go to the next track, and go to the previous track via buttons below the track thumbnail. The user can also go to another track by using single finger swipe via the thumbnails just above the current track thumbnail. | ||
- | |||
- | {{file:mediaplayer6.png?270x480}} | ||
- | |||
- | The number of the track in the overall sequence is visible. Once PLAY has been activated, the track duration becomes visible as a countdown. PAUSE also becomes available as a feature. Other control options include Shuffle ON, Shuffle OFF, Repeat ON, and Repeat OFF. | ||
- | |||
- | The user can exit the media player at any time using the return arrow. | ||
- | |||
- | |||
- | ===== Technical Details ===== | ||
- | |||
- | |||
- | The sections below are taken from directions for what is known as the September Release of Tizen 3.0 IVI. The current Tizen release is dated 2014.01.14, and may require some adjustment. | ||
- | |||
- | |||
- | ==== Installation Prerequisites ==== | ||
- | |||
- | |||
- | The following installation directions take the base Tizen image and install needed supporting software. | ||
- | |||
- | |||
- | === Multimedia Player application === | ||
- | |||
- | |||
- | **Local media content** | ||
- | |||
- | In order for MultimediaPlayer application to find your media it needs to be stored in the correct location. /opt/usr/media is the base directory. Music is stored in "Sounds" and videos in "Videos". You will need to reboot the system or run mediadb-update /opt/usr/media/Sounds and mediadb-update /opt/usr/media/Videos once you've moved the media there in order for MultimediaPlayer to find it. | ||
- | |||
- | In order for MultimediaPlayer application to show audio thumbnail it needs to be stored in audio metadata container (ID3 cover). You can simply add covers to your audio files with Mp3tag (http://www.mp3tag.de/en/). | ||
- | |||
- | In order for MultimediaPlayer application to show video thumbnail you will need to: | ||
- | |||
- | * Install media-thumbnail-server by runnning zypper install media-thumbnail-server | ||
- | * Install gstcs library by running zypper install libmm-imgp-gstcs | ||
- | * Run media-thumbnail-server in one terminal | ||
- | * Run mediadb-update /opt/usr/media/Videos in other terminal | ||
- | |||
- | **Note**: Last two steps are needed to be executed always if you add new content and want to have new video thumbnails added. | ||
- | |||
- | |||
- | === Enable MediaServer === | ||
- | |||
- | |||
- | **Rygel Server** | ||
- | |||
- | Rygel is an UPnP AV MediaServer that allows you to easily share audio, video and pictures to other devices. It's present in September release, we need to only configure it and enable at startup. | ||
- | |||
- | Create /root/.config/rygel.conf with the following content: (Note: if .config directory is not yet created, create it with command mkdir .config while in /root directory) | ||
- | |||
- | [general] | ||
- | upnp-enabled=true | ||
- | | ||
- | enable-transcoding=true | ||
- | enable-mp3-transcoder=true | ||
- | enable-lpcm-transcoder=true | ||
- | enable-mp2ts-transcoder=true | ||
- | enable-wmv-transcoder=true | ||
- | enable-aac-transcoder=true | ||
- | enable-avc-transcoder=true | ||
- | | ||
- | video-upload-folder=/opt/usr/media/Videos | ||
- | music-upload-folder=/opt/usr/media/Sounds | ||
- | picture-upload-folder=/opt/usr/media/Images | ||
- | | ||
- | interface= | ||
- | port=0 | ||
- | | ||
- | log-level=*:4 | ||
- | | ||
- | allow-upload=true | ||
- | allow-deletion=true | ||
- | | ||
- | [Tracker] | ||
- | enabled=true | ||
- | share-pictures=true | ||
- | share-videos=true | ||
- | share-music=true | ||
- | strict-sharing=false | ||
- | title=Tracker app's media on @HOSTNAME@ | ||
- | | ||
- | [MediaExport] | ||
- | enabled=true | ||
- | title=Friendly Name of the Device | ||
- | uris=/opt/usr/media/Sounds;/opt/usr/media/Videos;/opt/usr/media/Images; | ||
- | /opt/usr/media/Camera;/opt/usr/media/Downloads; | ||
- | include-filter=.mp3;.oga;.ogv;.ogg;.mkv;.avi;.mp4;.m4v;.m4a;.mpeg;.mpg;.ts;.flac; | ||
- | .jpeg;.jpg;.png;.wav;.wma;.wmv;.asf;.mpc;.mpp; | ||
- | .wv;.aac;.mka;.mp2;.webm;.ape;.m2ts | ||
- | extract-metadata=true | ||
- | monitor-changes=true | ||
- | | ||
- | [Playbin] | ||
- | enabled=true | ||
- | title=Audio/Video playback on @HOSTNAME@ | ||
- | | ||
- | [ZDFMediathek] | ||
- | enabled=false | ||
- | rss=508 | ||
- | update-interval=1800 | ||
- | video-format=wmv | ||
- | | ||
- | [GstLaunch] | ||
- | enabled=false | ||
- | launch-items=audiotestsrc;videotestsrc;videotestoverlay | ||
- | audiotestsrc-title=Audiotestsrc | ||
- | audiotestsrc-mime=audio/x-wav | ||
- | audiotestsrc-launch=audiotestsrc ! wavenc | ||
- | videotestsrc-title=Videotestsrc | ||
- | videotestsrc-mime=video/mpeg | ||
- | videotestsrc-launch=videotestsrc ! ffenc_mpeg2video ! mpegtsmux | ||
- | videotestoverlay-title=Videotestsrc with timeoverlay 2 | ||
- | videotestoverlay-mime=video/mpeg | ||
- | videotestoverlay-launch=videotestsrc ! timeoverlay ! ffenc_mpeg2video ! mpegtsmux | ||
- | | ||
- | [Test] | ||
- | enabled=false | ||
- | | ||
- | [MPRIS] | ||
- | enabled=true | ||
- | | ||
- | [External] | ||
- | enabled=true | ||
- | |||
- | By default, rygel service is disabled from being automatically loaded during booting up the system, however service script /lib/systemd/system/rygel.service already exists and the only thing to do in order to automatically start the service during booting up the system is to enable it. As root execute the following command: systemctl enable rygel | ||
- | |||
- | |||
- | === dLeyna Server === | ||
- | |||
- | |||
- | dLeyna-server is a high level media content API that allows client applications to discover, browse, and search UPNP and DLNA media servers. It is also included in September release. In order to start dLeyna-server during booting up the system, create systemd service and enable it: | ||
- | |||
- | Create /usr/lib/systemd/system/dleyna.service service with the following content: | ||
- | |||
- | [Unit] | ||
- | Description=dLeyna DLNA service | ||
- | After=networking.target rygel.service | ||
- | | ||
- | [Service] | ||
- | ExecStart=/usr/bin/su app -c "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/5000/dbus/user_bus_socket /usr/libexec/dleyna-server-service" | ||
- | |||
- | Restart=always | ||
- | | ||
- | [Install] | ||
- | WantedBy=multi-user.target | ||
- | |||
- | and enable it: | ||
- | |||
- | systemctl enable dleyna | ||
- | |||
- | |||
- | ===== Instructions for debugging WRT Apps (installation, removal, and deployment) ===== | ||
- | |||
- | |||
- | Tizen IVI WRT applications are built into widget ('.wgt') files for deployment (a format based on the W3C widget specification, see http://www.w3.org/TR/widgets/ for more information). Once you have built or received the widget files for one or more applications that you wish to deploy and run, the next step is to copy them onto the target device. Common options for this would be tools like scp/sftp (in a Linux/Unix environment), FileZilla (Windows and Mac) or Cyberduck (Mac). | ||
- | |||
- | Once the .wgt files have been transferred to the target machine, they may be installed, launched and uninstalled. | ||
- | |||
- | To get a list of currently installed applications, use the following command from a terminal (or remote shell/ssh session) on the target hardware (log in as root with the password tizen): | ||
- | |||
- | root:~> wrt-launcher -l | ||
- | |||
- | This will produce output similar to the following: | ||
- | |||
- | | **No**| **Name **| **Version**| **GUID**| **Package ID**| **App ID** | | ||
- | | 1| saythis| 1.0.0| http://yourdomain/sayThis| lYjFlj49Q4| lYjFlj49Q4.saythis | | ||
- | | 2| Settings| 1.0.0| http://yourdomain/Settings| ODBQpKvkS1| ODBQpKvkS1.Settings | | ||
- | | 3| MediaPlayer| 1.0.0| http://yourdomain/MediaPlayer| t8j6HTRpuz| t8j6HTRpuz.MediaPlayer | | ||
- | | 4| Store| 8.2.4401| http://com.intel.tizen/store| intelPoc13| intelPoc13.Store | | ||
- | | 5| Phone| 8.2.4399| http://com.intel.tizen/phone| intelPoc15| intelPoc15.phone | | ||
- | |||
- | |||
- | If the application you wish to install is not already installed, simply enter (using intelPoc14.MultimediaPlayer.wgt as an example): | ||
- | |||
- | root:~> wrt-installer -i intelPoc14.MultimediaPlayer.wgt | ||
- | |||
- | If successful, you should see output such as the following: | ||
- | |||
- | =========================================================== | ||
- | |||
- | # wrt-installer # | ||
- | |||
- | # argc [3] | ||
- | |||
- | - argv[0] = [wrt-installer] | ||
- | |||
- | # argv[1] = [-i] | ||
- | |||
- | # argv[2] = [intelPoc14.MultimediaPlayer.wgt] | ||
- | |||
- | ## wrt-installer : intelPoc14.MultimediaPlayer installation was successful. | ||
- | |||
- | =========================================================== | ||
- | |||
- | If unsuccessful, you may see errors such as 'invalid widget package', 'privilege level violation' or, if the application is already installed (and its widget file was built with a different signature than the one you wish to install), 'invalid signature'. The first two errors are out of scope for this document. | ||
- | |||
- | If you see 'invalid signature', and the widget file has to your knowledge been created with a valid signature, the likely cause is a conflict between the signature of the currently installed version and that of the new version. Though both signatures may be valid, the system treats the upgrade of an existing package with a different signature as a security violation. To work around this issue, simply uninstall the application and subsequently install the new version: | ||
- | |||
- | root:~> wrt-installer -un intelPoc14.MultimediaPlayer <-- note: use the App ID when unstalling and | ||
- | |||
- | the full widget filename when installing | ||
- | |||
- | If the uninstall is successful, you should see output like the following: | ||
- | |||
- | =========================================================== | ||
- | |||
- | # wrt-installer # | ||
- | |||
- | # argc [3] | ||
- | |||
- | # argv[0] = [wrt-installer] | ||
- | |||
- | # argv[1] = [-un] | ||
- | |||
- | # argv[2] = [intelPoc14.MultimediaPlayer] | ||
- | |||
- | =========================================================== | ||
- | |||
- | ## wrt-installer : intelPoc14.MultimediaPlayer uninstallation was successful. | ||
- | |||
- | Refer to installation instructions above for the subsequent installation steps. | ||
- | |||
- | In order to launch and run an installed application, issue the following command with the application's App ID as an argument: | ||
- | |||
- | root:~> wrt-launcher -s intelPoc14.MultimediaPlayer | ||
- | |||
- | You should see the application start and run on the target device. | ||
- | |||
- | To launch the application in debug mode, add the '-d' flag: | ||
- | |||
- | root:~> wrt-launcher -d -s intelPoc14.MultimediaPlayer | ||
- | |||
- | This will produce output like the following: | ||
- | |||
- | root:~/wgt> wrt-launcher -d -s intelPoc14.MultimediaPlayer | ||
- | |||
- | port: 36070 | ||
- | |||
- | result: launched | ||
- | |||
- | The port number referenced is a random high port which allows one to connect to the target device with a web browser using a URL of the form: | ||
- | |||
- | http://<ip address or name of target device>:<port #> | ||
- | |||
- | **For example:** | ||
- | |||
- | http://192.168.1.223:36070 | ||
- | |||
- | Once connected, you should see a single link in the upper right of the resulting web page, e.g.: | ||
- | |||
- | file:///opt/usr/apps/intelPoc14/res/wgt/index.html | ||
- | |||
- | Clicking that link will launch Webkit Web Inspector, a set of web development tools that should look familiar to users of Firefox Firebug or Chrome Dev Tools. Click the 'Console' icon in the toolbar to go to the Javascript console. Press ctrl-R, or type: | ||
- | |||
- | window.location.reload(); | ||
- | |||
- | ...to reload the application in order to display the startup/initialization functions associated with the app (since the app has already started by the time the debug interface is available). | ||
- | |||
- | To exit a running application, issue the following command with the application's App ID as an argument: | ||
- | |||
- | root:~> wrt-launcher -k intelPoc14.MultimediaPlayer | ||
- | |||
- | |||
- | ===== Known Bugs: ===== | ||
- | |||
- | * In order to use the ‘Repeat’ or ‘Shuffle’ features, you must select ‘All’. | ||
- | * Slider bar for song progress does not allow you to drag to a desired point in the song. | ||
- | * The only way to switch between the Media application and another application is to kill the Media application causing the music to stop playing. In a normal environment, the user will typically desire to be able to continue listening to music while switching to another app to surf or other activity. | ||
- | |||
- | ===== Release History: ===== | ||
- | |||
- | |||
- | ** 5.1 Features:** | ||
- | |||
- | Features for the Media Player home screen include the following: | ||
- | |||
- | * date and time | ||
- | * access to the Library | ||
- | * a thumbnail graphic for each track | ||
- | * track sequence order | ||
- | * duration of the track | ||
- | * controls to play, pause, go to the previous track, and the next track | ||
- | * shuffle ON/Off and repeat ON/OFF | ||
- | |||
- | Features for the Media Player Library include the following: | ||
- | |||
- | * icon/thumbnail or list view | ||
- | * access to the categories of ARTISTS, ALBUMS or ALL | ||
- | * single finger scroll | ||
- | |||
- | **5.2 Bug Fixes:** | ||
- | |||
- | * INTIVIPOCII-23 Add toggle to switch between DLNA and local content | ||
- | * INTIVIPOCII-23 Integrate browsing of DLNA Media Container of selected DLNA media server starting from root element and drill down through folders | ||
- | * INTIVIPOCII-23 Check DLNA server on Tizen 3.0 | ||
- | * INTIVIPOCII-27 Display available DLNA servers | ||
- | * INTIVIPOCII-27 Update selected DLNA server for media playback | ||
- | * INTIVIPOCII-23 Add video player | ||
- | * INTIVIPOCII-26 Replace carousel | ||
- | * INTIVIPOCII-343 Lost sound when Shuffle switched on | ||
- | * INTIVIPOCII-23 Add option to playback video content via HTML5 video element. Only video codecs supported by Tizen IVI will be played back in the applicationAdd toggle between full screen and windowed video playback | ||
- | * INTIVIPOCII-23 Large video thumbnails placeholderAlbums and Artists (local server) not sorted alphabetically | ||
- | * INTIVIPOCII-329 Disconnected remote server is not removed from the list if a folder from remote server is opened | ||
- | * INTIVIPOCII-23 Replace carousel in multimedia player by carouFredSel from common | ||
- | * INTIVIPOCII-27 Lost sound when Shuffle switched on | ||
- | * INTIVIPOCII-28 Create video of current functionality | ||