Music Player

From Openmoko

Jump to: navigation, search

Contents

Overview

This article defines the Music Player Application, an application designed for the OpenMoko platform. This is a Native Finger-Based application.

Use Cases

Here are some possible use cases:

  • I want to be able to quickly listen to music (2 cases, following)
... music stored locally on the Neo
... stream music from a network source to the Neo (example: internet radio or slim server via WiFi, probably using headphones on the Neo)
  • I want to be able to listen to music in the background while I do other tasks
  • I want to be able to stream high-quality music to speakers or bluetooth headphones.

Layout Components

Application Area

Playback Mode

image:Screen_music_player.png

  • 1) Song Information -- Artist's name, album, and track information.
  • 2) Playback head -- Current playback position. This can be dragged.
  • 3) Shuffle -- Random playback toggle. Icon will displayed grayed-out when Shuffle is off.
  • 4) Song duration / length -- Toggle (on tap) song duration / length
  • 5) Volume control -- Adjust the speaker volume level. While adjusting, 6) will display percentage (%) level information
  • 6) Option control -- Tapping will change between the following options for the current mode: {Volume Control, Track Time Control and maybe panning}
  • 7) Application Title -- Title of this application.
  • 8) Previous Track -- Will skip to previous track.
  • 9) Play / pause toggle -- Play or pause the current track
  • 10) Next Track -- Will skip to next track.
  • 11) Playlists -- Shows the current playlist. Tap anywhere near the icon to go to Playlist Mode
  • 12) Repeat -- Repeats the current track.
  • 13) Equalizer -- Eyecandy.
  • 14) Volume Indicator -- 10 levels of the volume indication. Updated in realtime as volume wheel is rotated.
  • 15) Panning -- Updated in realtime as panning wheel is rotated (may not be implemented this way/at all)
  • 16) Songs current / all count -- Shows the song's number in the current playlist.
Track Time Control

Image:Music player tracktime.png

(same as above except for 5)

  • 5) Time control -- Adjust the track playback head. While adjusting 6) will display percentage time information

Playlist Mode

image:Screen_music_player_playlist.png

  • 1) List Scroll -- Scrolls through the playlist. While scrolling, 6) will display the current / total item information.
  • 2) Mode Control -- Tapping will change between the following modes: {Playlist Mode, Returns to Playback Mode.}.

Image:Screen dialog close.png

  • 3) Dialog Title
  • 4) Selected Playlist -- The selected playlist. Tap to return to Playback Mode and start playing this playlist.
  • 5) Current Playlist -- The playlist currently playing.
  • 6) Playlist Count , selected / all -- Shows the number of playlists for the current folder.
  • 7) Browse -- Choose a default folder.

Playlist Setup

image:Screen_music_player_playlist_setup.png

  • 1) Selected Path -- Shows the full path while taping on the Treebox.
  • 2) Treebox List Control -- Shows the tree view of system folders.
  • 3) Close -- Closes the dialog, and back to Playlist screen.


Footer Area

Status Bar

  • show status information about the current track

Constraints

(TBD)

Sessions

(TBD)

Architectural Details

(TBD)

Implementation Recommendations

  • Supported formats should include *.ogg, *.flac, *.mp3, *.wma, *.m4a
  • Should it be not just a music player but universal media player?
  • Consider using XSPF as the playlist format.
  • Bookmark support for audiobooks. I want to be able to reboot the phone and be able to go back to the same file at (roughly) the same time as when I quit the program. It would be nice if this is auto-saved periodically in case the program quits unexpectedly (crash, dead battery, kill -9, whatever)
  • Mysql support for accessing music databases over a remote connection
  • Consider recruiting the Rockbox.org firmware developers and porting feature-rich Rockbox GNU code. Rockbox features such as audio recording and voice synthesis could also be used in other applications.

Icons

Image:Music 32x32.png

UI position

Image:Finger 06 music player p.png

  • Playback Mode

Interactions

(TBD)

Unresolved Issues

(TBD)

Questions and Answers

(see Talk:Music Player)

Personal tools