0% found this document useful (0 votes)
7 views

Android Project Sample

The document is a project report for a Music Player Android Application, submitted for a Bachelor of Computer Application degree. It includes sections on the introduction, problem statement, objectives, methodology, literature review, system development, performance analysis, and conclusion. The aim is to develop an Android application that provides information about an international conference and a media player capable of handling various media formats.

Uploaded by

576donllb
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Android Project Sample

The document is a project report for a Music Player Android Application, submitted for a Bachelor of Computer Application degree. It includes sections on the introduction, problem statement, objectives, methodology, literature review, system development, performance analysis, and conclusion. The aim is to develop an Android application that provides information about an international conference and a media player capable of handling various media formats.

Uploaded by

576donllb
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 61

Music Player Android Application

Project report submitted in partial fulfillment of the requirement for


the degree of Bachelor of Computer Application

By

Under the supervision of

i
CERTIFICATE
Candidate’s Declaration

(Student Signature)

ii
This is to certify that the above statement made by the candidate is true to the best of my
knowledge.

(Supervisor Signature)

Prof. Xyz
Computer Application

Department

iii
ACKNOWLEDGEMENT

Date: Name of the students:

iv
CONTENTS

CERTIFICATE… ..................................................................................................................i

ACKNOWLEDGEMENT… .................................................................................................ii

LIST OF FIGURES ...............................................................................................................iii

ABSTRACT............................................................................................................................ iv 1.
INTRODUCTION
1.1. INTRODUCTION .................................................................................................1 1.2)
PROBLEM STATEMENT… ......................................................................... 6
1.3) OBJECTIVES.............................................................................................................. 6
1.4) METHODOLGY ..........................................................................................................7
1.5) ORGANISATION ........................................................................................................8

2) LITEATURE SURVEY. ..............................................................................................9

3.) SYSTEM DEVLOPMENT .........................................................................................14

4.) PERFORMANCE ANALYSIS...................................................................................55

5.) CONCLUSION… .......................................................................................................59

6.) REFERENCES........................................................................................................... 60

v
List of Figures

S.No. Title Page No.

1. Android Logo 2

2. Android Architecture 3

3. Android Studio Logo 5

4. Architecture of multimedia player software 11


platform
12
5. Android media framework
12
6. System processes of media player
13
7. Android Architecture
27
8. System Flow Chart
28
9. Media Layer Structure
34
10. State Diagram of Audio player

vi
ABSTRACT

In recent years, the emergence of smart phones has changed the definition of mobile phones.
“Phone is no longer just a communication tool, but also an essential part of the peoples
communication and daily life. Various applications added unlimited fun for peoples lives. It
is certain that the future of the network will be the mobile terminal. Now the Android
system in the electronics market is becoming more and more popular, especially in the
smartphone market”. Because of the open source, some of the development tools are free, so
there are plenty of applications generated.

So our aim is to develop an android application to give information about the details
of International Conference on Image Information Processing and to develop a media player
which can run almost any media content in any form.

vii
CHAPTER 1: INTRODUCTION

1.1 Introduction

In recent years, the emergence of smart phones has changed the definition of mobile phones.
“Phone is no longer just a communication tool, but also an essential part of the peoples
communication and daily life. Various applications added unlimited fun for peoples lives. It
is certain that the future of the network will be the mobile terminal. Now the Android
system in the electronics market is becoming more and more popular, especially in the
smartphone market. Because of the open source, some of the development tools are free, so
there are plenty of applications generated. This greatly inspired the people to use the
Android system ” . “ In addition, it provides a very convenient hardware platform for
developers so that they can spend less effort to realize their ideas. This makes Android can
get further development . As the smart phones and Android system getting popular, the
operations like listening to music, watching videos, tweeting and some others can be moved
from the computer to a phone now. The applications on the market today are mostly
commercial applications, and contain a large number of built-in advertising. If the user
prefers to remove the built-in advertising, a certain price must be paid to reach that and this is
not convenient. Meanwhile, because of the unfair competition of IT, many applications built
illegal program to steal user information and cause some damage to user’s personal privacy.
Sometimes, users will pay more attention to the user experience of software. Therefore,
the development of the application can not only be limited to the function, more attention
should be paid to the users experience. After studying some previous Android applications
and access to large amounts of materials, we utilize the Java language, the Eclipse platform,
Android ADT and the Android SDK to develop these three mobile applications ” . “ These
systems have a nice interface and smooth operation. These Apps won’t steal any personal
information, but can exclude useless information and bring a wonderful user experience”.

1.1.1 Android

“ Android is a mobile operating system (OS) currently developed by Google, based on the
Linux kernel and designed primarily for touchscreen mobile devices such as smartphones
and tablets ” . “ Androids user interface is mainly based on direct manipulation, using touch
gestures that loosely

correspond to real-world actions, such as swiping, tapping and pinching, to manipulate on-
screen
objects, along with a virtual keyboard for text input. In addition to touchscreen devices,
Google 1
has further developed Android TV for televisions, Android Auto for cars, and Android Wear
for wrist watches, each with a specialized user interface”.

Figure1.Android Logo

1.1.2 Android Architecture

“We studied the Android system architecture. Android system is a Linux-based system, Use of
the software stack architecture design patterns . As shown in Figure 1, the Android
architecture consists of four layers: Linux kernel, Libraries and Android runtime, Application
framework and Applications [5-8]. Each layer of the lower encapsulation, while providing
call interface to the upper”.

2
Figure2. Android Architecture

A) Applications:
“Android app will be shipped with a set of core applications including client, SMS progra
m,
calendar, maps, browser, contacts, and others. All these application programs
are developed in Java”.

B) Application Framework :
“The developer is allowed to access all the API framework of the core programs. The
application framework simplifies the reuse of its components. Any other app can
release its functional components and all other apps can access and use this
component (but have to follow the security of the framework). Same as the users can
be able to substitute the program components with this reuse mechanism”

3
C) Libraries and Android Runtime
“The library is divided in to two components: Android Runtime and Android Library.
Android Runtime is consisted of a Java Core Library and Dalvik virtual machine. The
Core Library provides Java core library with most functions. Dalvik virtual machine is
register virtual machine and makes some specific improvements for mobile device.
Android system library is support the application framework, it is also an important link
connecting between application framework and Linux Kernel. This system library is
developed in C or C++ language. These libraries can also be utilized by the different
components in the Android system. They provide service for the developers through
the application framework”.

D) Linux Kernel
“The kernel system service provided by Android inner nuclear layer is based on Linux
2.6 kernel, Operations like internal storage, process management, internet protocol,
bottom-drive and other core service are all based on Linux kernel”.

1.1.3 Software Development Kit(SDK)

“A software development kit (SDK or "devkit") has many definitions but it is usually callded
a set
of software development tools which help us in many ways or allows the creation of
applications which can be useful in future in a lot of things as seen from this
report for a certain softwarepackage, software framework, hardware platform, computer
system, video game console, operating system, or similar development platform. To create
applications you have to download this software development kit”. “For example, if you want to
create an Android app you require an SDK with java programming, for iOS apps you require
an iOS SDK with swift language, and to develop MS Windows apps you require thepackage,
software framework, hardware platform, computer system, video game console, operating
system, or similar development platform. To create applications you have to download this
software development kit”. “For example, if you want to create an Android app you require
an SDK with java programming, for iOS apps you
4
require an iOS SDK with swift language, and to develop MS Windows apps you require the
.net language. There are also SDKs that are installed in apps to provide analytics and data
about activity. Prominent examples include Google and Facebook”.

5
1.1.4 Android Studio

“Android Studio is an integrated development environment (IDE) for developing for


the
Android platform. It was announced on May 16, 2013 at the Google I/Oconference ” .
“Android Studio is freely available under the Apache License 2.0. Android Studio was in
early access preview stage starting from version 0.1 in May 2013, then entered beta
stage starting from versionconference ” . “ Android Studio is freely available under the
Apache License 2.0. Android Studio was in early access preview stage starting from version
0.1 in May 2013, then entered beta stage starting from version
0.8 which was released in June 2014”. “The first stable build was released in December
2014, starting from version 1.0. Based on JetBrains software, Android Studio is designed
specifically for Android development. It is available for download on Windows, Mac OS
Xand Linux, and replaced Eclipse Android Development Tools (ADT) as Googles primary
IDE for native Android application development”.

Figure3.Android Studio Logo

1.2 Problem Statement:

1.2.1 “ To develop an android application to give information about the details of


International Conference on Image Information Processing. This application will
allow all users to receive all kinds of information regarding ICIIP such as Program
schedule, Keynote Speakers, Important Dates, etc. User can access this application
anywhere and anytime using his or her Smartphone”.

1.2.2 Many users like to watch video and listen to music using their mobile phone, “but the
media
player has many limitations. With a rapid development of communication and
network,
6
multimedia based technology is adopted in media player. So our aim is to develop a
media player which can run almost any media content in any form”.

7
1.3 Objective
There are 5 objectives in this project:
1. To setup Android software development kit.

2. To write a program that can do various tasks such as running media(audio & video),
displaying information, sending notifications, Bitmapping, asynchronous multi-tasking.

3. Crash handling and debugging.

4. Generating signed APK.

5. Upload application on Google Playstore.

1.4 Methodology

“This project is made by using Android studio, Virtual emulator and Photoshop. The
programming languages used for building the application are Java, XML and C++.
User interface is handled using XML codes. Backend programming is handled mainly
through set of java codes. Native libraries are accessed through set of predefined C++
codes”.

The other libraries required are:

Android SDK tools


Android SDK platform tools
Android SDK build tools
SDK platform
ARM EABI v7a System Image
Intel x86 Atom_64 System Image
Google APIs

8
Google APIs ARM EABI v7a System Image
GPU Debugging tools
Android Support Library
Google play services
Google USB drivers
Google Web drivers
Intel x86 Emulator Acclerator(HAXM installer)

1.5 Organization:

As an overview, the structure of this report is organized as follows:

Chapter 1 “Describes a general introduction of the project, problem statement project


aims and
project scope”.

Chapter 2 “ Provides details literature review that includes an introduction to some basic
concepts and a survey of existing works in the areas of developing the android application.
This chapter explains in detail all the researches, studies, theories and gathering that
have been make throughout the project”.

Chapter 3 “Discusses the system and design of the project which provides a detailed
description of the design to develop an application”.

Chapter 4 “Discusses about the result and Screenshots”.

Chapter 5 “Concludes the project and gives suggestions for future work”.

9
CHAPTER 2 : LITERATURE REVIEW

Paper 1: Music player Android Application

“The authors in [1] have tested the app in three environments including hardware, software
and network. Test hardware environment is Lenovo Y460 laptop and millet M1 phone;
software environment is windows 7 and phone system environment is android 4.0.3”.
“ Network environment is China Mobile which is 10M broadband, WIFI LAN and China
Mobile GPRS network.By testing each function on mobile phone and the computer simulator,
the result showed that video player and audio player run well and no advertising ” . “ Sina weibo
client can successfully complete OAuth2.0 certificate authority and login and collect the basic
data of the user information from sina server and no redundant information. Expected effect
is achieved after testing all the functions ” . “ They says that since the Weibo client has to
access to the network, when tested on an android phone, the performance under the
environment of WIFI network and mobile 2G GPRS network can meet the expected
requirements”.

Paper 2: Research on Development of android Applications.

“ This article [2] gives a detailed introduction of android application framework and the
working principal of android applications. Finally, a music player on the android platform was
put forward as an example to illustrate this mechanism”.

10
Paper 3: The android Application Development College Challenge

“The authors in [3] say that android application development college challenge has only been
held two times, but it greatly encourages and promotes the creativity of the college students ” .
“With more and more competitive teams participating the contest, it will be harder to win an
award.However, many exciting applications will be presented in the contest. This challenge
gives us an opportunity to learn about that a lot of ideas we think about can be implemented
on android platform. At the same time, the contest provides a stage for android developer
to discuss and communicate with each other. This can effectively promote the
development of android and attract more software engineers to develop applications on
android platform”.

Paper 4: “A model driven approach for android applications development”

“ This paper [4] proposes a MDE approach for android applications development, which
addresses how to model specific aspects of android applications, as intent and a
data/service request, using standard UML notations ” . “ Moreover, it supports static and
behavioral code generation from UML class and sequence diagrams, according to the
rules imposed by the android platform. To demonstrate our approach, a case study was
conducted, in which an android application was modeled in UML and code was generated
from it. To generate code, the extension of GenCode was used ” . “ However, the actual
version of GenCode tool that supports the proposed approach, only made an automatic
transformation from UML class and sequence diagrams to the target android Java code,
without consider any optimization in the generated code. As future work, we plan to extend
this tool in order to consider the good practices for android development , and thus
generating efficient code”.

Paper 5: Design of Android based Media Player


This paper[5] tells us that many or a lot of users use their mobile phone but obviously, but
the
media player has many limitations. The increase in development of communication and
network, multimedia based technology is adopted in media player. Different approaches of
media player
11
“ shown in this paper are plug-
in extension technology, multimedia based on hierarchy, media player based on file browser,
media player based on FFmpeg (Fast Forward Moving Picture Expert Group), media player
based on file server”.

Figure 4. Architecture of multimedia player software platform

Figure 5. Android media framework

12
Figure 6. System processes of media player

Paper 6: The Android - A Widely Growing Mobile Operating System With its Mobile based
Applications[6]

“Android operating system is one of the most widely used mobile Operating System these days and
also enhancing its use for making betterment in different areas of life. Android mobile
operating system is based on the Linux kernel and is developed by Google and primarily designed
for smartphones and tablets. Android Operating System consist of four main layers, the specifying
architecture is given in this paper. The advanced Smart applications of android in mobile, real-time
and wireless sensor network are widening their service areas. Android is a disruptive technology,
which was introduced initially on mobile handsets, but has much wider potential. In this paper we
are studying, one of the smart and enhancing Android operating system application which are
based on Automated and tracking from remote distance. These application helps students, teachers,
parents, patients and users of home appliance as anytime and anywhere basis. Being part of today’s
advance world, using fastest acceptable and mobile Android Operating System it ’ s possible to
develop automated attendance system, secure transferring of medical data and automated home
appliance monitoring system”.

13
Figure 7.Android Architecture

14
CHAPTER 3:SYSTEM DEVELOPMENT

3.1 Designing navigation drawer

To add a navigation drawer, declare wer user interface with aDrawerLawet object as the root
view of werlawet. “Inside theDrawerLawet, add one view that contains the main content for
the screen (wer primary lawet when the drawer is hidden) and another view that contains the
contents of the navigation drawer”.

“For example, the following lawet uses a DrawerLawet with two child views: a FrameLawet
to contain the main content (populated by a Fragment at runtime), and a ListView for
the navigation drawer”.

This lawet demonstrates some important lawet characteristics: 15


“ The main content view (the FrameLawet above) must be the first child in
the DrawerLawet because the XML order implies z-ordering and the drawer must be on top
of the content”.

“The main content view is set to match the parent views width and height, because it
represents the entire UI when the navigation drawer is hidden”.

“The drawer view specifies its width in dp units and the height matches the parent view.
The drawer width should be no more than 320dp so the user can always see a portion of
the main content”.

Initialize the Drawer List


“In wer activity, one of the first things to do is initialize the navigation drawers list of items.
How we do so depends on the content of wer app, but a navigation drawer often consists of a
ListView, so the list should be populated by an Adapter (such as ArrayAdapter or
SimpleCursorAdapter)”.

For example, heres how we can initialize the navigation list with a string array:

16
}
}

“ This code also calls setOnItemClickListener() to receive click events in the navigation
drawers list. The next section shows how to implement this interface and change the
content view when the user selects an item”.

Handle Navigation Click Events


“When the user selects an item in the drawers list, the system calls onItemClick()
on theOnItemClickListener given to setOnItemClickListener()”.

“What we do in the onItemClick() method depends on how weve implemented wer app
structure.
In the following example, selecting each item in the list inserts a different Fragment into
themain
content view (theFrameLawet element identified by the R . i d . c o n t e n t _ f r a m e ID)”:

17
Listen for Open and Close Events
“ To listen for drawer open and close events, call setDrawerListener() on wer DrawerLawet
and pass it an implementation of DrawerLawet.DrawerListener. This interface provides
callbacks for drawer events such asonDrawerOpened() and onDrawerClosed()”

“ However, rather than implementing the DrawerLawet.DrawerListener, if wer activity


includes the action bar we can instead extend the
ActionBarDrawerToggle class. The ActionBarDrawerToggle
implementsDrawerLawet.DrawerListener so we can still override those callbacks, but it also
facilitates the proper interaction behavior between the action bar icon and the navigation
drawer (discussed further in the next section)”. we can instead extend the
ActionBarDrawerToggle class. The
ActionBarDrawerToggle implementsDrawerLawet.DrawerListener so we can still override
those callbacks, but it also facilitates the proper interaction behavior between the action
bar icon and the navigation drawer (discussed further in the next section)”.

“ As discussed in the Navigation Drawer design guide, we should modify the contents of the
action bar when the drawer is visible, such as to change the title and remove action
items that are contextual to the main content. The following code shows how we can
do so by overriding
DrawerLawet.DrawerListener callback methods with an instance of the
ActionBarDrawerToggle 18
19
}
}

3.2 Creating another activity

Respond to the Send Button

1. “In Android Studio, from the res/lawet directory, edit thecontent_my.xml file”.

2. “Add the android:onClick attribute to the <Button>element”.

res/lawet/content_my.xml

“The a n d r o i d : o n C l i c k attribute’s value, "s end Mess age" , is the name of a method in wer
activity that the system calls when the user clicks the button”.

3. “In the java/com.shashwat.iciip directory, open the MainActivity.java file”.

4. “Within the MainActivity class, add the sendMessage() method stub shown below”.

MainActivity.java

publicvoidsendMessage(View view){
}

“In order for the system to match this method to the method name given to
a n d r o i d : o n C l i c k , the signature must be exactly as shown. Specifically, the method must”:

o Be public

o Have a void return value

20
o “Have a View as the only parameter (this will be the View that was clicked)”

Next, we’ll fill in this method to read the contents of the text field and deliver that text to
another activity.

Build an Intent
1. “In MainActivity.java, inside the sendMessage() method, create an Intent to start an
activity calledDisplayMessageActivity with the following code”:

java/com.shashwat.iciip/MainActivity.java

The constructor used here takes two parameters:

o “A Context as its first parameter (this is used because the Activity class is a
subclass of Context)”

o “The Class of the app component to which the system should deliver the Intent (in this
case, the activity that should be started)”

“Android Studio indicates that we must import the Intent class”.

2. At the top of the file, import the Intent class:

MainActivity.java

importandroid.content.Intent;

3. Inside the sendMessage() method, use findViewById() to get the EditText element.

MainActivity.java

21
EditTexteditText=(EditText)findViewById(R.id.edit_message);
}

4. “At the top of the file, import the EditText class.

In Android Studio, press Alt + Enter (option + return on Mac) to import missing classes”.

5. Assign the text to a local message variable, and use the putExtra() method to add its text
value
to the intent.

MainActivity.java

“An Intent can carry data types as key-value pairs called extras. The putExtra() method
takes the key name in the first parameter and the value in the second parameter”.

6. At the top of the MyActivity class, add the EXTRA_MESSAGE definition as follows:

MainActivity.java

“ For the next activity to query the extra data, we should define the key for wer intents
extra using a public constant. Its generally a good practice to define keys for intent extras
using wer apps package name as a prefix. This ensures the keys are unique, in case wer
app interacts with other apps”.

22
7. “In the sendMessage() method, to finish the intent, call the startActivity() method,
passing it theIntent object created in step 1”.

With this new code, the complete s e n d M e s s a g e ( ) method thats invoked by the Send button
now looks like this:

MainActivity.java

“The system receives this call and starts an instance of the Activity specified by the Intent.
Now
we need to create the D i s p l a y M e s s a g e A c t i v i t y class in order for this to work”.

Create the Second Activity


1. “In Android Studio, in the java directory, select the package, com.mycompany.iciip, right-
click, and select New > Activity > Blank Activity”.

2. In the Choose options window, fill in the activity details:

o Activity Name: DisplayMessageActivity

o Lawet Name: activity_display_message

o Title: My Message

o Hierarchical Parent: com.mycompany.myfirstapp.MyActivity

o Package name: com.mycompany.myfirstapp

Click Finish.

23
3. Open the DisplayMessageActivity.java file.

“The class already includes an implementation of the required onCreate() method. We


update the implementation of this method later”.

Receive the Intent


“Every Activity is invoked by an Intent, regardless of how the user navigated there. We can
get the Intentthat started wer activity by calling getIntent() and retrieve the data contained
within the intent”.

1. “In the mainactivity directory, edit the DisplayMessageActivity.java file”.

2. “Get the intent and assign it to a local variable”.

Intentintent=getIntent();

3. “At the top of the file, import the Intent class”.

4. Extract the message delivered by MyActivity with the getStringExtra() method.

String message =intent.getStringExtra(MyActivity.EXTRA_MESSAGE);

Display the Message


1. “In the res/lawet directory, edit the content_display_message.xml file”.

2. “Add an android:id attribute to the RelativeLawet. We need this attribute to reference the
object from wer app code”.

<RelativeLawetxmlns:android="http://schemas.android.com/apk/res/android"
...

24
android:id="@+id/content">
</RelativeLawet>

3. “Switch back to editing DisplayMessageActivity.java”.

4. “In the onCreate() method, create a TextView object”.

TextViewtextView=newTextView(this);

5. “Set the text size and message with setText()”.

textView.setTextSize(40);
textView.setText(message);

6. “Add the TextView to the RelativeLawet identified by R.id.content”.

RelativeLawetlawet=(RelativeLawet)findViewById(R.id.content);
lawet.addView(textView);

7. “At the top of the file, import the TextView class”.

“In Android Studio, press Alt + Enter (option + return on Mac) to import missing classes”.

25
3.3 Video Player

Video Player is achieved through the Android Studio platform.It begins with the study of
operating “ mechanism, Android platform media layer structure, xml customizable
interface ” , Content Providers achieves file scanning to
get a list of media files, MediaPlayer class, file parsing, “ Surface Flinger interface. After that,
we could develop an Android-based mobile video player. Realize media library, video player,
file opening, audio, video, photographs and other functions. Figure below is system flow
chart”.

Figure 8.System Flow Chart

“The software interface is defined through XML files. XML layout files control view, is not
only simple, but also isolated the View control logic from Java code and controlled by
inserted into XML files. Reflects the MVC principle in a better way and also reflects the
principle of separation of logic and views. This software obtains the list of media files by
scanning through Content Providers. Content Providers is recognized as a bridge between
the data storing and searching across programs. The function is to achieve data sharing
among different Apps, it is the only way to share data with other apps. Figure below shows
the media layer structure”.

26
Figure 9.Media Layer Structure

“ The upper applications of Android-MediaPlayer are implemented by JAVA, realized


logic processing. JAVA program realizes the playback of video file and online video by
calling the underlying media library libmedi.so through JNI interface. MediaPlayer can be
roughly divided into two parts at run time: Client and Server. They are running in two
separated processes.Binder used between them to achieve IPC communication.
Mediaplayerservice in Figure 3 is a server-side implementation repository. MediaPlayer
calls media playback capabilities provided by Opencore to implement video file playback,
Opencore responsible media file format parsing, decoding audio and video data, and
outputs the media data. Opencore calls SurfaceFlinger” interface to realize the showing of
video data and by applying AudioFlinger interface to realize the playback of audio data.

“In the Android media layer, the most important class is MediaPlayer. MediaPlayer class and
its associated structures are shown in Figure below”.

27
“Vitamio is an open multimedia framework for Android, with hardware accelerated decoder
and renderer. Vitamio can play 720p/1080p HD mp4,mkv,m4v,mov,flv,avi,rmvb,rm,ts,tp and
many other video formats in Android and iOS. Almost all popular streaming protocols are
supported by Vitamio, including HLS(m3u8), MMS, RTSP, RTMP, and HTTP”.

Integrating SDK into your application

Create a New Android project

import vitamiolibrary.jar into your applicaiton project /libs directory

Add libvitamio.so into your application project /libs directory

Copy the recourse like class,picture from Demo into app project

AUDIO PLAYER

MediaPlayer class can be used to control playback of audio files and streams.

State Diagram
“Playback control of audio/video files and streams is managed as a state machine. The
following diagram shows the life cycle and the states of a MediaPlayer object driven by the
supported playback control operations. The ovals represent the states a MediaPlayer object
may reside in. The arcs represent the playback control operations that drive the object state
transition. There are two types of arcs. The arcs with a single arrow head represent
synchronous method calls, while those with a double arrow head represent asynchronous
method calls”.

28
Figure 10.State Diagram of audio player

“From this state diagram, one can see that a MediaPlayer object has the following states”:

“When a MediaPlayer object is just created using new or after reset() is called, it is in
the Idle state; and after release() is called, it is in the Endstate. Between these two states is
the life cycle of the MediaPlayer object”.

o “There is a subtle but important difference between a newly constructed MediaPlayer


object and the MediaPlayer object after reset() is called. It is a programming error to
invoke methods such”
“as getCurrentPosition(), getDuration(), getVideoHeight(),
getVideoWidth(),setAudioStrea mType(int), setLooping(boolean), setVolume(float, float),
pause(), start(), stop(), seekTo(int), prepare() orprepareAsync() in the Idle state for both
cases. If any of these methods is called right after a MediaPlayer object is constructed,
the user supplied callback method OnErrorListener.onError() wont be
called”
29
“ by the internal player engine and the object state remains unchanged; but if
these methods are called right after reset(), the user supplied callback method
OnErrorListener.onError() will be invoked by the internal player engine and the object will
be transfered to
the Error state”.

o “It is also recommended that once a MediaPlayer object is no longer being used,
call release() immediately so that resources used by the internal player engine
associated with the MediaPlayer object can be released immediately. Resource may
include singleton resources such as hardware acceleration components and failure to
call release() may cause subsequent instances of MediaPlayer objects to fallback to
software implementations or fail altogether. Once the MediaPlayer object is in the End
state, it can no longer be used and there is no way to bring it back to any other state”.

o “Furthermore, the MediaPlayer objects created using new is in the Idle state, while those
created with one of the overloaded convenient createmethods are NOT in the Idle state”.
fact, the objects are in the Prepared state if the creation using create method is
successful.

“In general, some playback control operation may fail due to various reasons, such as
unsupported audio/video format, poorly interleaved audio/video, resolution too high,
streaming timeout, and the like. Thus, error reporting and recovery is an important concern
under these circumstances. Sometimes, due to programming errors, invoking a playback
control operation in an invalid state may also occur. Under all these error conditions, the
internal player engine invokes a user supplied OnErrorListener.onError() method if an
OnErrorListener has been registered beforehand”
via setOnErrorListener(android.media.MediaPlayer.OnErrorListener).

o “It is important to note that once an error occurs, the MediaPlayer object enters
the Error state (except as noted above), even if an error listener has not been registered
by the application”.

o “In order to reuse a MediaPlayer object that is in the Error state and recover from the
error, reset() can be called to restore the object to its Idlestate”.

o “It is good programming practice to have your application register a OnErrorListener to


look out for error notifications from the internal player engine”.
30
o “IllegalStateException is thrown to prevent programming errors such as
calling prepare(), prepareAsync(), or one of the overloadedsetDataSource methods in an
invalid state”.

“Calling setDataSource(FileDescriptor), or setDataSource(String), or


setDataSource(Context, Uri) or setDataSource(FileDescriptor, long, long), or
setDataSource(FileDescriptor, long, long),
or setDataSource(MediaDataSource) transfers a MediaPlayer object in the Idle state to the
Initialized state”.

o “An IllegalStateException is thrown if setDataSource() is called in any other state”.

o “It is good programming practice to always look out


for IllegalArgumentException and IOException that may be thrown from the
overloadedsetDataSource methods”.

“A MediaPlayer object must first enter the Prepared state before playback can be started”.

o “There are two ways (synchronous vs. asynchronous) that the Prepared state can be
reached: either a call to prepare() (synchronous) which transfers the object to the
Prepared state once the method call returns, or a call
to prepareAsync() (asynchronous) which first transfers the object to the Preparing
state after the call returns (which occurs almost right way) while the internal player
engine continues working on the rest of preparation work until the preparation work
completes. When the preparation completes or when prepare() call returns, the internal
player engine then calls a user supplied callback method, onPrepared() of the
OnPreparedListener interface, if an OnPreparedListener is registered beforehand
via setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener)”.

o “It is important to note that the Preparing state is a transient state, and the behavior of
calling any method with side effect while a MediaPlayer object is in the Preparing state
is undefined”.

o “An IllegalStateException is thrown if prepare() or prepareAsync() is called in any other


state”.

31
o “While in the Prepared state, properties such as audio/sound volume,
screenOnWhilePlaying, looping can be adjusted by invoking the corresponding set
methods”.

“To start the playback, start() must be called. After start() returns successfully, the
MediaPlayer object is in the Started state. isPlaying() can be called to test whether the
MediaPlayer object is in the Started state”.

o “While in the Started state, the internal player engine calls a user supplied
OnBufferingUpdateListener.onBufferingUpdate() callback method if a
OnBufferingUpdateListener has been registered beforehand
via setOnBufferingUpdateListener(OnBufferingUpdateListener). This callback allows
applications to keep track of the buffering status while streaming audio/video”.

o Calling start() has not effect on a MediaPlayer object that is already in the Started state.

“Playback can be paused and stopped, and the current playback position can be adjusted.
Playback can be paused via pause(). When the call topause() returns, the MediaPlayer
object enters the Paused state. Note that the transition from the Started state to the
Paused state and vice versa happens asynchronously in the player engine. It may take
some time before the state is updated in calls to and it can be a number of seconds in the
case of streamed content”. and it can be a number of seconds in the case of streamed
content”.

o “Calling start() to resume playback for a paused MediaPlayer object, and the resumed
playback position is the same as where it was paused. When the call to start() returns,
the paused MediaPlayer object goes back to the Started state”.

o Calling pause() has no effect on a MediaPlayer object that is already in the Paused
state.

“Calling stop() stops playback and causes a MediaPlayer in


the Started, Paused, Prepared or PlaybackCompleted state to enter the Stopped state”.

o “Once in the Stopped state, playback cannot be started until prepare() or prepareAsync()
are called to set the MediaPlayer object to the Preparedstate again”.

o “Calling stop() has no effect on a MediaPlayer object that is already in the Stopped
state”.
32
The playback position can be adjusted with a call to seekTo(int).

o “Although the asynchronuous seekTo(int) call returns right way, the actual seek
operation may take a while to finish, especially for audio/video being streamed. When
the actual seek operation completes, the internal player engine calls a user supplied
OnSeekComplete.onSeekComplete() if an OnSeekCompleteListener has been registered
beforehand via setOnSeekCompleteListener(OnSeekCompleteListener)”.

o “Please note that seekTo(int) can also be called in the other states, such as Prepared,
Paused and PlaybackCompleted state”.

o “Furthermore, the actual current playback position can be retrieved with a call
to getCurrentPosition(), which is helpful for applications such as a Music player that
need to keep track of the playback progress”.

When the playback reaches the end of stream, the playback completes.

o “If the looping mode was being set to truewith setLooping(boolean), the MediaPlayer
object shall remain in the Started state”.

o “If the looping mode was set to false , the player engine calls a user supplied callback
method, OnCompletion.onCompletion(), if a OnCompletionListener is registered
beforehand via setOnCompletionListener(OnCompletionListener). The invoke of the
callback signals that the object is now in the PlaybackCompleted state”.

o While in the PlaybackCompleted state, calling start() can restart the playback from the
beginning of the audio/video source.

Classes for audio player

33
interfac “MediaStore.Audio.Albu mColumns Columns representing an album”
e

“MediaStore.Audio. Albums Contains artists for audio files”

“MediaStore.Audio.ArtistColum ns Columns representing an artist”

Class “MediaStore.Audio.Artists Contains artists for audio files”

“MediaStore.Audio.AudioColumns
Columns for audio file that show up in multiple tables.”

interfac “MediaStore.Audio.Genres Contains all genres for audio files”


e
“MediaStore.Audio.GenresColumns Columns representing an audio genre”

Class “MediaStore.Audio.Media”

interfac “MediaStore.Audio.Playlists Contains playlists for audio


e files”

Class

interfac
e

Class

Class

34
interfac “MediaStore.Audio.PlaylistsColum ns Columns representing a playlist”
e

“MediaStore.Audio.Radio”

Class

Public constructors

“MediaStore.Audio()”

Public methods

staticString “keyFor(String name)”


“Converts a name to a "key" that can be used for grouping, sorting and
searching.”

35
Features

1.Equalizer

“An Equalizer is used to alter the frequency response of a particular music source or of the main
output mix”.

“An application creates an Equalizer object to instantiate and control an Equalizer engine in
the audio framework. The application can either simply use predefined presets or have a more
precise control of the gain in each frequency band controlled by the equalizer”.

“The methods, parameter types and units exposed by the Equalizer implementation are directly
mapping those defined by the OpenSL ES 1.0.1 Specification (http://www.khronos.org/opensles/) for
the SLEqualizerItf interface. Please refer to this specification for more details”.

“To attach the Equalizer to a particular AudioTrack or MediaPlayer, specify the audio session
ID of this AudioTrack or MediaPlayer when constructing the Equalizer”.

Classes for equalizer

interface Equalizer.OnParameterChangeListener

The OnParameterChangeListener interface defines a method called by the Equalizer


when a param

Class Equalizer.Settings

The Settings class regroups all equalizer parameters.

creating an equalizer

36
float volume = 1; float speed = 0.05f;

37
This is my ShakeDetector code.

38
39
OnCompletionListener code. package com.grifball.info;

import android.media.MediaPlayer;

public class OnCompletionListener {

public void onCompletion(MediaPlayer mp) { // TODO Auto-generated method stub

40
2. Sleep timer

Create one service, which is going to be used for countdown of time.


By default android broadcasts one intent call ACTION_TIME_TICK at every minute
Register that intent in your service.
Increment your count at every minute.

PlayActivity.java

41
.

3.4 System Requirements For Android Studio WINDOWS


“Microsoft® Windows® 8/7/Vista (32 or 64-bit)”.

“2 GB RAM minimum, 4 GB RAM recommended”.

“400 MB hard disk space”.

“At least 1 GB for Android SDK, emulator system images”

1280 x 800 minimum screen resolution

42
Linux

“GNOME or KDE desktop”.

“GNU C Library (glibc) 2.15 or later”.

“2 GB RAM minimum, 4 GB RAM recommended”.

“400 MB hard disk space”.

“At least 1 GB for Android SDK, emulator system images, and caches”.

“1280 x 800 minimum screen resolution”.

“Oracle® Java Development Kit (JDK) 7”.

Mobile Recquirements To Run Application


Android OS 4.0 or above
512MB RAM
Screen Size 3.5 inch or above

43
CHAPTER 4: PERFORMANCE ANALYSIS

A) Screenshots of Conference Application

44
45
46
47
CHAPTER 5: CONCLUSION

“ Android as a full, open and free mobile device platform, with its powerful function and
good user experience rapidly developed into the most popular mobile operating system. This
report givesan overview of the different challenges and issues faced in android app
development The experience of developing an android app is quite challenging, motivating as
well as satisfying”.

“This report shows an approach for designing of media player. Media player should consider
the
improvement in scenario such as decode efficiency needs to
be improved, synchronization between multiple media streams, and display of the original
data. Use of FFmpeg decode library seems to be an alternative method. Research shows
FFmpeg supports most media formats which gives a high decode efficiency. Different
approaches that can be considered are plug-in extension technology, multimedia based
on hierarchy, media player based on file browser, media player based on FFmpeg, media
player based on file server, etc”.

There is a vast scope of improvement in this field.


48
REFRENCES

[1] Ma, Li, Lei Gu, and Jin Wang. "Research and Development of Mobile Application for android
Platform." (2014).

[2] Liu, Jianye, and Jiankun Yu. "Research on Development of android Applications."
Fourth International conference on Intelligent Networks and Intelligent Systems. 2011.

[3] Peng, Bin, Jinming Yue, and Chen Tianzhou. "The android Application Development College
Challenge." High Performance Computing and Communication & 2012 IEEE 9th
International Conference on Embedded Software and Systems (HPCC-ICESS), 2012 IEEE
14th International Conference on. IEEE, 2012

[4] Parada, Abilio G., and Lisane B. de Brisolara. "A model driven approach for android
applications development." Computing System Engineering (SBESC), 2012 Brazilian
Symposium on. IEEE, 2012.

[5] Nikhil S. Sakhare , R. W. Jasutkar. “Design of Android based Media Player”.


International Journal of Science and Research (IJSR), India Online ISSN: 2319‐7064,
February 2013.

[6] Amit M. Farkade, Miss. Sneha. R. Kaware. “The Android - A Widely Growing Mobile
Operating System With its Mobile based Applications ” International Journal of Computer
Science and Mobile Applications, Vol.3 Issue. 1, January- 2015, pg. 39-45

49

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy