You are on page 1of 28

G .V.

ACHARYA POLYTECHNIC SHELU


Veeracharya Technical Education Campus, Raigad, Shelu,
Maharashtra410201

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

MRS. MADHURA MAHINDRAKAR


MAHARASHTRA STATE BOARD OF
TECHNICALEDUCATION
CERTIFICATE

This is to certify that Ms. Purva Ankush Dabhane


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


Date: EXAM SEAT NO. : 142754

SUBJECT TEACHER HEAD OF THE DEPARTMENT PRINCIPAL


(Mrs. Madhura Mahindrakar) (Mrs. Madhura Mahindrakar) (Mr.Umesh Kantute)
MAHARASHTRA STATE BOARD OF
TECHNICALEDUCATION
CERTIFICATE

This is to certify that Mr. Kunal Balkrishna Mhatre


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. : 2111440069


Date: EXAM SEAT NO. : 142760

SUBJECT TEACHER HEAD OF THE DEPARTMENT PRINCIPAL


(Mrs. Madhura Mahindrakar) (Mrs. Madhura Mahindrakar) (Mr.Umesh Kantute)
MAHARASHTRA STATE BOARD OF
TECHNICALEDUCATION
CERTIFICATE

This is to certify that Mr. Sahil Jayram Raut


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. : 2111440080


Date: EXAM SEAT NO. : 142768

SUBJECT TEACHER HEAD OF THE DEPARTMENT PRINCIPAL


(Mrs. Madhura Mahindrakar) (Mrs. Madhura Mahindrakar) (Mr.Umesh Kantute)
MAHARASHTRA STATE BOARD OF
TECHNICALEDUCATION
CERTIFICATE

This is to certify that Ms. Vedanti Janardan 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.: 2211440160


Date: EXAM SEAT NO. : 142773

SUBJECT TEACHER HEAD OF THE DEPARTMENT PRINCIPAL


(Mrs. Madhura Mahindrakar) (Mrs. Madhura Mahindrakar) (Mr.Umesh Kantute)
MAHARASHTRA STATE BOARD OF
TECHNICALEDUCATION
CERTIFICATE

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

SUBJECT TEACHER HEAD OF THE DEPARTMENT PRINCIPAL


(Mrs. Madhura Mahindrakar) (Mrs. Madhura Mahindrakar) (Mr.Umesh Kantute)
CANDIDATES DECLARATION

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

Sr.No. Content Pg.No


.

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

A Music Player Application serves as a versatile tool for music enthusiasts,


providing a seamless and immersive platform for accessing and enjoying their favorite
tunes. With its intuitive interface and comprehensive features, a music player app
offers users the flexibility to organize their music library, create personalized playlists,
and effortlessly navigate through their collection. Whether users prefer streaming
music from online services or curating their offline playlists, a music player application
caters to diverse preferences, delivering a rich listening experience tailored to
individual tastes.

Designed to accommodate the evolving landscape of music consumption,


modern music player applications integrate seamlessly with online streaming
platforms, granting users access to an extensive catalog of songs and albums from
across the globe. Beyond basic playback functionalities, these applications often
incorporate advanced features such as personalized recommendations, social sharing
capabilities, and intelligent algorithms that adapt to users' listening habits. By
harnessing the power of technology and connectivity, a music player application
becomes more than just a tool for audio playback—it evolves into a dynamic
companion that enriches users' musical journeys and fosters a deeper connection with
the music they love.

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

The theoretical background for a music player application encompasses


several key concepts from computer science, software engineering, and user
experience design. Here are some fundamental aspects:

1. Digital Audio Representation:


Understanding digital audio formats (such as MP3, AAC, FLAC) and how audio data
is encoded, decoded, and played back by the software.

2. Data Structures and Algorithms:


Implementing efficient data structures and algorithms for organizing and accessing
music files, playlists, and metadata. This could involve techniques like linked lists,
hash tables, or tree structures for fast searching and retrieval.

3. User Interface Design (UI/UX):


Applying principles of user-centered design to create intuitive interfaces for
browsing, searching, and playing music. This includes considerations for usability,
accessibility, and aesthetics.

4. Playback Control and Audio Processing:


Implementing features for controlling playback, such as play, pause, skip, shuffle,
repeat, volume control, and equalization. Understanding audio processing techniques
for tasks like decoding, buffering, and streaming audio data.

5. Concurrency and Multithreading:


Managing concurrent tasks such as audio playback, user input handling, and
background tasks (e.g., downloading or updating music files) to ensure smooth
performance and responsiveness.

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.

7. Networking and Communication:


Integrating network protocols for accessing online music libraries, streaming
services, or sharing music with other users. This involves concepts like HTTP,
TCP/IP, and APIs for data exchange.

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.

9. Security and Privacy:


Implementing measures to protect user data, ensure secure communication with
online services, and prevent unauthorized access or tampering with the application
and music files.

10. Performance Optimization:


Optimizing the application's performance in terms of speed, memory usage, and
energy efficiency, especially for resource-intensive tasks like audio decoding and
playback.

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:

 Audio Playback: Implementing playback controls such as play, pause, stop,


skip, rewind, and fast forward to enable users to control the playback of music
tracks.

 Playlist Management: Allowing users to create, edit, and manage playlists


containing their favorite songs. This includes features like adding/removing
tracks, rearranging the playlist order, and saving playlists for future use.

 Audio Library Organization: Providing options for organizing the user's


music library based on criteria such as artist, album, genre, and release year.
This facilitates easy navigation and discovery of music content.

 Search Functionality: Incorporating a search feature to enable users to quickly


find specific songs, albums, or artists within their music library.

 Customization Options: Offering customization features such as equalizer


settings, playback speed adjustment, and theme customization to allow users to
personalize their music listening experience.

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.

 Offline Mode: Supporting offline playback by allowing users to download and


store music tracks locally on their device for playback without an internet
connection.

 Cross-Platform Compatibility: Ensuring compatibility with various operating


systems and devices, including smartphones, tablets, desktop computers, and
smart TVs, to reach a broad user base.

 User Experience Enhancement: Focusing on delivering a user-friendly


interface with intuitive navigation, visually appealing design, and smooth
performance to enhance user satisfaction.

 Accessibility Features: Incorporating accessibility features such as screen


reader support, voice commands, and text-to-speech functionality to ensure
inclusivity for users with disabilities.

6
CODE

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>


<ScrollView xmlns:a="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
a:layout_width="match_parent"
a:layout_height="match_parent"
a:orientation="vertical"
tools:ignore="HardcodedText">

<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 {

private final Service service;


private final MediaPlayer mediaPlayer;

/**
* 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();

/* setup player variables */


mediaPlayer.setDataSource(service, location);

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {


mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
} else {
mediaPlayer.setAudioAttributes(
new AudioAttributes.Builder()
10
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.setUsage(AudioAttributes.USAGE_MEDIA)
.build()
);
}

mediaPlayer.setLooping(false);

/* setup listeners for further logics */


mediaPlayer.setOnCompletionListener(this);
}

@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

To provide a comprehensive analysis for a "Music Player Application," we'll break


down the various aspects involved:

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.

5. User Experience (UX) Analysis:


 User Journey: Map out the typical user flows, from launching the app to
discovering and playing music.
 UI Design: Design intuitive and visually appealing interfaces that facilitate
easy navigation and interaction.
 Feedback Mechanisms: Incorporate feedback mechanisms like ratings,
reviews, and user analytics to continually improve the user experience.

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

Limitations of a Music Player Application can arise from various factors,


including technical constraints, legal considerations, and user expectations. Here are
some common limitations:

1. Audio Format Compatibility:


Some music player applications may have limitations in terms of the audio formats
they support. While most players support popular formats like MP3 and AAC,
compatibility with less common or proprietary formats could be limited.

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.

7. User Interface Complexity:


Overly complex user interfaces can be a limitation for some users, especially those
who prefer simplicity and ease of use. Too many features or cluttered design may
overwhelm users and hinder their enjoyment of the application.

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).

2. Liu, Jianye, and Jiankun Yu. "Research on Development of android


Applications." Fourth International conference on Intelligent Networks and
Intelligent Systems. 2011.

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.

4. 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.

19

You might also like