Music Player
From Openmoko
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
- 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
- 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.}.
- 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
- 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
UI position
- Playback Mode
Interactions
(TBD)
Unresolved Issues
(TBD)
Questions and Answers
(see Talk:Music Player)







