User Tools

Site Tools


agl-demonstrator:media

DLNA Media Player

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.

Resources

Watch Media video.

Access the Design Requirements Document (DRD).

Access the Sources.

Download the Application WGT.

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.

Once launched, the user must touch/tap the Library button to see the options for selecting music or videos.

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.

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. 

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. 

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://&lt;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

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

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
agl-demonstrator/media.txt · Last modified: 2015/08/08 22:55 by wminer