When I first did the literature research on dealing with audio in iphone development, it had several choices to go but I chose AVFoundation Framework which is one of several frameworks that we can use to play and create time-based audiovisual media. It provides an Objective –C interface we use to work on a detailed level with time-based audiovisual data. For an example, we can use it to examine, create and edit media files. We can also get input streams from devices and manipulate video during real-time capture and playback.
Available Screens and how they connect
Basically, this application has improved accessibility for blind or visually impaired users to listen to music/ audio books with guidance of voice prompts. The voice prompt feature has been developed by using the flite-1.4-iphone library.

Like the same, the concept that I've used through out the app is "hear before you confirm"
Now, i'll explain the features implemented in the individual screens
EyeMusic welcome Screen

Playlist screen

This screen contains table view which displays title of the song, duration and a little icon in each of its cells. Once a user clicks on a song, first the title will be read aloud and a second tap will play the song navigating to the player view.
Player Screen
This is the most complicated screen in this app. It basically holds most of the functions that a user expects to do with a song or any audio. For an instance,

- play a song,
- pause now playing song,
- stop playing a song,
- play the next song,
- play the previous song,
- increase volume
- decrease volume
- mute
- skip forward
- rewind
- view title of the now playing song
- view Duration
- view time leaft
- view play mode
- change play mode (shuffle, repeat)
- switch voice prompt on/off
- let the user post a tweet(post a little comment on twitter) about the currently playing song [the tiny
- button with a twitter icon directs to the twitter screen]
'Tweet about this song' screen
If you listen to a song and what if you really like it or completely hate it? You may tell a friend. To do so, is there another way to share a piece of comment in a social network where all your friends can read your feeling?

I thought to give the same right to a visually impaired or blind user through this function. All what he/she has to do is to type just two or three words exactly to mention how they feel about the currently playing song. given the few words of the user, the app generates a simple tweet and makes it a tweet to be posted on his.her twitter wall after confirmation. Interesting, isn't that so?
About Screen
This is a screen with a simple description about the EyeMusix application. All what the user needs to do is to tap on the screen once to listen to the description as read by the voice prompt. Another tap while reading the description will stop reading.
Help Screen
Actually, this screen is similar to an FAQ page in a website. All what i have done is, list down the possible questions that a user can have while handling this app and give a brief description /answer in a separate page about the selected question.
I made available the complete project for your reference.