Professional Documents
Culture Documents
REPORT ON
MUSIC PLAYER APP
FOR THE SUBJECT
MOBILE APPLICATION DEVELOPMENT
ACADEMIC YEAR
2023-24
MAHARASHTRA STATE BOARD OF TECHNICAL
EDUCATION
Group Members
SR.NO NAME OF STUDENT ENROLLMENT
1. Purva A. Dabhane 2111440063
2. Kunal B. Mhatre 2111440069
3. Sahil J. Raut 2111440082
4. Vedanti J. Pashte 2211440160
GUIDED BY
This is to certify that Mr. Purva Dabhane, Kunal Mhatre, Sahil Raut, Vedanti
Pashte
Of semester – VI of diploma in COMPUTER ENGINEERING of institute, G V
ACHARAYA POLYTECHNIC, SHELU has completed the Micro project
satisfactorily in subject – MOBILE APPLICATION DEVELOPMENT for the
academic year 2023-24 as prescribed in the curriculum.
Place: Shelu ENROLLMENT NO. : 2111440063
2111440069
2111440082
2211440160
Date: EXAM SEAT NO. : 142754
142760
142768
142773
This is to certify that the project titled “Music Player App” is a bonafied work
carried out by student of Diploma in Computer Engineering as a part of curriculum as
prescribed by MSBTE. I here by declare that the project work has not formed the basis for
the award previously of any Diploma, Associate ship, Fellowship or any other similar
title according to my knowledge.
Signature of Students:
1.
2.
3.
4.
ACKNOWLEDGEMENT
We extend our special thanks to all teaching and non-teaching staff. Success is
nourished under the combination of perfect guidance, care and blessing.
Acknowledgement is the best way to convey Last few years spend in estimated institution
has moulded us into confident and aspiring engineers. We express our sense of gratitude
towards our project guide Mrs. Madhura Mahindrakar It is because of her valuable
guidance, analytical approach encouragement that we could learn, work and complete
the project. We will always cherish great experience work under the enthusiastic
guidance.
We are also grateful to our principal and our vice principal who not only supported
us in our project but also encouraged for every creative activity. We also sincerely give
thanks to our head of department Mrs. Madhura Mahindrakar of computer and its
sector, friends and well wishers to directly or indirectly contribute for the success of our
maiden mission.
INDEX
1. INTRODUCTION 1
2. AIM 2
3. THEORETICAL 3
BACKGROUND
4. OBJECTIVE / SCOPE 5
5. CODE 7
6. OUTPUT 13
7. ANALYSIS 14
8. LIMITATION 16
9. CONCLUSION 18
10. REFERENCE 19
INTRODUCTION
1
AIM
The aim of a music player application is to provide users with a convenient and
enjoyable way to listen to their favorite music tracks and playlists on various devices,
offering features such as organization, playback controls, customization options, and
access to a wide range of music content.
2
THEORETICAL BACKGROUND
3
6. File Management and Storage:
Dealing with file I/O operations for reading, writing, and managing music files stored
on local storage or accessed remotely from online sources like streaming services.
8. Cross-Platform Compatibility:
Designing the application to work seamlessly across various operating systems and
devices, including desktop computers, smartphones, tablets, and smart TVs. This
may involve using cross-platform frameworks or adapting the user interface for
different screen sizes and input methods.
4
OBJECTIVE / SCOPE
The objective and scope for a "Music Player Application" can be defined as follows:
Objective:
The primary objective of a music player application is to provide users with a
convenient and enjoyable way to listen to their favorite music tracks and playlists on
various devices. The application aims to offer a seamless and feature-rich user
experience tailored to the preferences and needs of music enthusiasts.
Scope:
The scope of a music player application encompasses a range of functionalities and
features aimed at enhancing the user's music listening experience. This includes:
5
Integration with Online Services: Integrating with online music streaming
services or music libraries to provide access to a vast collection of songs and
albums. This may involve features like online radio, curated playlists, and social
sharing.
6
CODE
activity_main.xml
<LinearLayout
a:layout_width="match_parent"
a:layout_height="wrap_content"
a:orientation="vertical"
a:padding="10dp">
<TextView
a:layout_width="match_parent"
a:layout_height="wrap_content"
a:text="Little Music Player"
a:textSize="40sp" />
<TextView
a:layout_width="match_parent"
a:layout_height="wrap_content"
a:layout_marginTop="10dp"
a:text="How to use"
a:textSize="40sp" />
<TextView
a:layout_width="match_parent"
a:layout_height="wrap_content"
a:text="From this app:"/>
<Button
a:id="@+id/file_opener"
a:layout_width="match_parent"
a:layout_height="wrap_content"
a:layout_margin="10dp"
a:text="Open an audio"/>
<Button
a:id="@+id/folder_opener"
7
a:layout_width="match_parent"
a:layout_height="wrap_content"
a:layout_margin="10dp"
a:text="Open a folder"
a:visibility="gone"/>
<TextView
a:layout_width="match_parent"
a:layout_height="wrap_content"
a:text="From other apps:"/>
<TextView
a:layout_width="match_parent"
a:layout_height="wrap_content"
a:text="1. Share an audio"/>
<TextView
a:layout_width="match_parent"
a:layout_height="wrap_content"
a:text="2. Select Little Music Player"/>
<TextView
a:layout_width="match_parent"
a:layout_height="wrap_content"
a:layout_marginTop="10dp"
a:text="You can control the playback via the notification."/>
<TextView
a:layout_width="match_parent"
a:layout_height="wrap_content"
a:id="@+id/permissions"
a:layout_marginTop="10dp"
a:text="Permissions"
a:textSize="40sp"
a:visibility="gone"/>
<Button
a:id="@+id/notif_settings"
a:layout_width="match_parent"
a:layout_height="wrap_content"
a:layout_margin="10dp"
a:text="Allow notifications for playback controls"
a:visibility="gone"/>
<Button
a:id="@+id/playlist_settings"
8
a:layout_width="match_parent"
a:layout_height="wrap_content"
a:layout_margin="10dp"
a:text="Allow media file access to enable playlist"
a:visibility="gone"/>
<TextView
a:layout_width="match_parent"
a:layout_height="wrap_content"
a:layout_marginTop="10dp"
a:text="Made By"
a:textSize="40sp"/>
<TextView
a:layout_width="match_parent"
a:layout_height="wrap_content"
a:text="martinmimigames" />
<TextView
a:layout_width="match_parent"
a:layout_height="wrap_content"
a:text="Enjoy your audio!" />
</LinearLayout>
</ScrollView>
9
AudioPlayer.java
package com.martinmimigames.littlemusicplayer;
import android.media.AudioAttributes;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Build;
import java.io.IOException;
/**
* audio playing logic class
*/
class AudioPlayer extends Thread implements MediaPlayer.OnCompletionListener,
MediaPlayerStateListener {
/**
* Initiate an audio player, throws exceptions if failed.
*
* @param service the service initialising this.
* @param location the Uri containing the location of the audio.
* @throws IllegalArgumentException when the media player need cookies, but we do not supply
it.
* @throws IllegalStateException when the media player is not in the correct state.
* @throws SecurityException when the audio file is protected and cannot be played.
* @throws IOException when the audio file cannot be read.
*/
public AudioPlayer(Service service, Uri location) throws IllegalArgumentException,
IllegalStateException, SecurityException, IOException {
this.service = service;
/* initiate new audio player */
mediaPlayer = new MediaPlayer();
mediaPlayer.setLooping(false);
@Override
public void run() {
/* get ready for playback */
try {
mediaPlayer.prepare();
service.setState(true, false);
} catch (IllegalStateException e) {
Exceptions.throwError(service, Exceptions.IllegalState);
service.playOrDestroy();
} catch (IOException e) {
Exceptions.throwError(service, Exceptions.IO);
service.playOrDestroy();
}
}
/**
* check if audio is playing
*/
public boolean isPlaying() {
return mediaPlayer.isPlaying();
}
/**
* check if audio is looping, always false on < android cupcake (sdk 3)
*/
public boolean isLooping() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUPCAKE) {
return mediaPlayer.isLooping();
} else {
return false;
}
}
@Override
11
public void setState(boolean playing, boolean looping) {
if (playing) {
mediaPlayer.start();
} else {
mediaPlayer.pause();
}
mediaPlayer.setLooping(looping);
}
/**
* notifies playback completion
*/
@Override
public void onCompletion(MediaPlayer mp) {
service.onMediaPlayerComplete();
}
@Override
public void onMediaPlayerDestroy() {
/* interrupt audio playback logic */
if (!isInterrupted()) {
interrupt();
}
}
@Override
public void onMediaPlayerReset() {
mediaPlayer.reset();
}
/**
* release and kill service
*/
@Override
public void interrupt() {
mediaPlayer.release();
super.interrupt();
}
}
12
OUTPUT
13
ANALYSIS
1. Market Analysis:
Target Audience: Identify the demographic and psychographic characteristics
of potential users (e.g., age, music preferences, tech-savviness).
Market Trends: Analyze current trends in music consumption, such as
streaming services, personalized playlists, and integration with smart devices.
Competitor Analysis: Evaluate existing music player applications, including
their features, pricing models, user ratings, and market share.
2. Functional Requirements:
Basic Features: Define essential functionalities like playback controls (play,
pause, skip), playlist management, and audio visualization.
Advanced Features: Determine additional features such as equalizer settings,
lyrics display, offline mode, integration with streaming services, and social
sharing options.
Platform Compatibility: Decide whether the application will target specific
platforms (e.g., iOS, Android, desktop) or offer cross-platform support.
3. Technical Requirements:
Technology Stack: Choose appropriate technologies and frameworks for
development (e.g., Swift or Kotlin for mobile apps, React or Angular for web
apps).
Data Management: Determine how music files, metadata, and user preferences
will be stored and managed (e.g., local storage, cloud storage, databases).
Audio Processing: Consider audio decoding, playback algorithms, and support
for various audio formats.
Integration: Plan integration with external APIs for accessing music libraries,
streaming services, or fetching metadata.
14
4. Non-Functional Requirements:
Performance: Specify performance benchmarks for loading times,
responsiveness, and smooth playback, especially on low-end devices.
Scalability: Assess the application's ability to handle a growing user base and
increasing data volumes.
Security: Address security concerns related to user data, authentication, and
secure communication with external services.
Accessibility: Ensure compliance with accessibility standards for users with
disabilities, including support for screen readers and alternative input methods.
6. Cost-Benefit Analysis:
Development Costs: Estimate the resources (time, money, manpower) required
for development, testing, and deployment.
Monetization Strategies: Evaluate potential revenue streams, such as one-time
purchases, subscription models, in-app advertisements, or partnerships with
music providers.
ROI Projection: Forecast the return on investment based on projected user
acquisition, retention rates, and revenue generation.
15
LIMITATION
2. Platform Dependency:
Certain music player applications may be limited to specific operating systems or
devices. For example, an application developed exclusively for iOS may not be
available on Android devices, limiting its reach to a particular user base.
3. Internet Connectivity:
Music streaming features may require a stable internet connection. Users in areas with
poor connectivity may experience limitations in accessing online music libraries or
streaming services, impacting their overall experience.
4. Storage Space:
Local music player applications may face limitations related to device storage space.
Users with limited storage capacity may need to manage their music library carefully
or rely more on streaming services rather than downloading tracks.
5. Copyright Restrictions:
Music player applications must adhere to copyright laws and licensing agreements.
This may limit the availability of certain songs or albums, particularly for streaming
services, and can result in geographical restrictions on content access.
16
6. Hardware Limitations:
Older or less powerful devices may struggle with resource-intensive features like high-
definition audio playback or real-time audio processing. This can lead to performance
issues such as lagging or audio stuttering.
8. Accessibility Challenges:
Music player applications should be accessible to users with disabilities. However,
limitations in accessibility features like screen reader support or alternative input
methods may exclude certain users from fully utilizing the application.
17
CONCLUSION
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.
18
REFERENCE
1. Ma, Li, Lei Gu, and Jin Wang. "Research and Development of Mobile
Application for android Platform." (2014).
3. 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.
19