You are on page 1of 18

MAHARASHTRA STATE BOARD OF TECHNICAL

EDUCATION
GOVERNMENT POLYTECHNIC, JALGAON
(0018)

Department Of Information
Technology (IF6I)
Course Name and Code : Mobile Application Development(22617)
Academic Year : 2023-2024
Semester : 6th

A MICRO PROJECT
ON
Virtual Recording Application

Roll no Name of Students Enrollment no Seat no.

11 Sanket Prakash Chopade 2100180158

37 Siddhesh Madhusudhan Patil 2100180193

42 Rushikesh Devdatta Tambatkar 2100180206

Guided by
Mr. H.K.
Nemade
(Lecturer in IT)
MAHARASHTRA STATE BOARD OF TECHNICAL
EDUCATION

Certificate
This is to certify Sanket Prakash Chopade , Siddhesh Madhusudhan Patil , Rushikesh
Devdatta Tambatkar, that Roll No.11,37,42 of 6th Semester of Diploma in Information
Technology of Government Polytechnic, Jalgaon (Code:0018) has completed the
Micro Project satisfactorily in the subject Mobile Application development (22617)
for the Academic Year 2023- 2024 as prescribed in the curriculum.

Place: Jalgaon Enrollment no:


2100180158
2100180193
2100180206

Date: Exam Seat No:

Subject Teacher Head of the Department Principal

Seal of Institution
GOVERNMENT
POLYTECHNIC
JALGAON

-SUBMISSION-
We Sanket Prakash Chopade , Siddhesh Madhusudhan Patil , Rushikesh Devdatta
Tambatkar as a students of 6th Semester of the Programme Information Technology
humbly submit that we have completed the Micro-Project work time to time as
described in this report by our own skills and study in the academic year 2023 - 2024 as
per instructions and guidance of Mr. H.K. Nemade .We have not copied the report or
its any appreciable part from any other literature in contravention of the academic
ethics.

Date: Signature of Students


Acknowledgement

This Micro project would not have been possible without considerable
guidance and support. So, we would like to acknowledge those who have enable us
to complete this project.
Firstly we would like to thank our project guide, Mr. H.K.Nemade (Lecturer in
IT Government Polytechnic Jalgaon) and Head of IT Department Mr. H. K. Nemade
for providing the guideline with continuous advice and feedback throughout the
duration of finishing this project. We also thank to the Dr. P.M. Patil (Principal of
Government Polytechnic Jalgaon) for providing us the opportunity to embark on this
project
Secondly, we would also like to thank all other staff members of IT department
that we may called upon for assistance since the genesis of this project their opinion
and suggestion have helped us in a realizing this project.
Also, not to be forgotten, we would like to thank all our friends with the report
valuable opinion and sharing ideas during the process of this project
Finally, we would like to thank our families for their understanding,
encouragement and support towards the completion of project.

Thank you so much.


INDEX

Sr. No Title Page


no.

1 Introduction

2 Objectives

3 Hardware and Software Requirement

4 Implementation

5 Screenshot of Output

6 Conclusion

7 References
VRA

Chapter 1

Introduction

In the age of digital innovation, the realm of music production and audio recording
has undergone a transformative evolution. Welcome to Virtual Record, a
groundbreaking application poised to revolutionize the way you capture, create, and
share audio content.

Embark on a Seamless Recording Journey:


Say goodbye to the constraints of traditional recording studios and bulky
equipment. With Virtual Record, you can harness the power of cutting-edge virtual
technology to record your music, podcasts, voiceovers, and more from the comfort
of your own space. Whether you're a seasoned professional or an aspiring artist, our
intuitive interface makes the recording process effortless and enjoyable.

Unlock Unlimited Creativity:


Explore a myriad of features designed to unleash your creativity and elevate your
recordings to new heights. From customizable virtual instruments and effects to
real-time collaboration tools, Virtual Record empowers you to experiment,
improvise, and craft your sound with unparalleled flexibility.

Connect and Collaborate Globally:


Distance is no longer a barrier to collaboration. With Virtual Record's seamless
integration of cloud-based sharing and real-time collaboration features, you can
connect with musicians, producers, and collaborators from around the globe.
Experience the thrill of co-creating music and audio content in real-time, regardless
of geographical boundaries.

Elevate Your Sound with Advanced Tools:


Dive into a treasure trove of advanced audio processing tools and effects,
meticulously crafted to enhance every aspect of your recordings. From professional-
grade mixing and mastering plugins to intelligent audio restoration algorithms,
Virtual Record equips you with everything you need to achieve studio-quality
results with precision and ease.

Department of Information Technology


VRA

Chapter 2

Objectives
The objectives of a virtual recording application typically revolve around providing users
with a comprehensive set of tools and functionalities to facilitate high-quality audio
recording, editing, and sharing experiences. Here are some common objectives:

Accessibility and Convenience:


Enable users to record audio content conveniently from anywhere, eliminating the need
for expensive studio setups or specialized equipment.

User-Friendly Interface:
Design an intuitive and easy-to-navigate interface that caters to users of all skill levels,
from beginners to professional audio engineers.

Versatility:
Provide a wide range of features and tools to accommodate various recording needs,
including music production, podcasting, voiceovers, field recordings, and more.

High-Quality Audio:
Ensure that the application supports recording and processing of high-fidelity audio,
allowing users to achieve professional-grade results.

Real-Time Collaboration:
Enable users to collaborate with others in real-time, regardless of their geographical
location, fostering creativity and teamwork.

Customization and Flexibility:


Allow users to customize their recording environments with virtual instruments, effects,
and mixing tools, empowering them to create unique and personalized audio content.

Department of Information Technology


VRA

Chapter 3

Hardware and software requirements

HARDWARE REQUIREMENTS:

1. Computer:
- Operating System: Windows, macOS, or Linux.
- Processor: Intel Core i3 or AMD Ryzen 3 processor (or higher) for smooth
performance.
- RAM: Minimum 8 GB RAM for comfortable development. More RAM can improve
performance, especially when running virtual devices.
- Storage: SSD storage is recommended for faster compilation and loading times.

2. Android Device:
- While not strictly required, having an Android device for testing your app can be
beneficial to ensure it functions properly across different hardware configurations. You
can use your personal Android smart phone or tablet.
- Alternatively, you can use Android emulators provided by Android Studio for testing
your app on virtual devices.

3. Internet Connection:
- A stable internet connection is essential for downloading software tools, updates,
libraries, and resources, as well as for accessing documentation and tutorials online.

Department of Information Technology


VRA

SOFTWARE REQUIREMENTS:

1. Integrated Development Environment (IDE):


- Android Studio

2. Programming Language Support:


- Java Development Kit (JDK) for Java
- Kotlin Compiler for Kotlin

3. Android SDK (Software Development Kit):


- Included with Android Studio

4. Build Automation Tool:


- Gradle

5. Version Control System:


- Git

6. Graphics and Design Tools:


- Adobe Photoshop, Adobe XD, Sketch, Figma, etc.

7. Testing Tools:
- Android Emulator
- Physical Android devices

8. Documentation and Learning Resources:


- Official Android Developer Documentation
- Online tutorials, forums, and communities

9. Deployment and Distribution Tools:


- Google Play Console
- Firebase App Distribution or similar services

These software requirements cover the essentials needed for developing Android
applications efficiently

Department of Information Technology


VRA

Chapter 4

Implementation
package com.sanket.vra;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.os.SystemClock;
import android.widget.Chronometer;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.core.content.FileProvider;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import android.Manifest;

public class MainActivity extends AppCompatActivity {

private Button startButton, stopButton;


private MediaRecorder recorder;
private String outputFile;
private static final int MY_PERMISSIONS_REQUEST_RECORD_AUDIO = 123; // Replace with
your desired request code

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Department of Information Technology


VRA
// Check if the permission is not granted
if (ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO)
!= PackageManager.PERMISSION_GRANTED) {
// Request the permission
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.RECORD_AUDIO},
MY_PERMISSIONS_REQUEST_RECORD_AUDIO);
}
if (ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO)
!= PackageManager.PERMISSION_GRANTED) {
Toast.makeText(getApplicationContext(),"Please Allow Microphone Permission",
Toast.LENGTH_LONG).show();
}
Chronometer chronometer = findViewById(R.id.chronometer);

startButton = findViewById(R.id.start);
stopButton = findViewById(R.id.stop);

stopButton.setEnabled(false);
outputFile = getExternalCacheDir().getAbsolutePath() + "/recording.mp3";
outputFile = "/data/data/com.sanket.vra/files/sample.mp3";

startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startButton.setEnabled(false);
stopButton.setEnabled(true);

chronometer.setBase(SystemClock.elapsedRealtime());
chronometer.start();

recorder = new MediaRecorder();


recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
recorder.setOutputFile(outputFile);

try {
recorder.prepare();
recorder.start();
} catch (IOException e) {
e.printStackTrace();
}
}
});

stopButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startButton.setEnabled(true);
stopButton.setEnabled(false);
recorder.stop();

Department of Information Technology


VRA
recorder.release();
recorder = null;
// Hide the recording label and stop the timer
chronometer.stop();
chronometer.setBase(SystemClock.elapsedRealtime());;

// Define the target directory path


String targetDirectoryPath = "/storage/emulated/0/Recordings/VRA/";

// Create a File object for the recording file


File recordingFile = new File(outputFile);

// Create a File object for the target directory


File targetDirectory = new File(targetDirectoryPath);

// Create the target directory if it doesn't exist


if (!targetDirectory.exists()) {
targetDirectory.mkdirs();
Toast.makeText(getApplicationContext(),"FOLDER
CREATED",Toast.LENGTH_SHORT).show();
}
// Generate a unique file name using a timestamp
String timeStamp = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss",
Locale.getDefault()).format(new Date());
String targetFileName = "vra_" + timeStamp + ".mp3";

// Define the target file path


String targetFilePath = targetDirectoryPath + targetFileName;

// Create a File object for the target file


File targetFile = new File(targetFilePath);
try {
// Open input and output streams
FileInputStream inputStream = new FileInputStream(recordingFile);
FileOutputStream outputStream = new FileOutputStream(targetFile);

// Set up a buffer for efficient copying


byte[] buffer = new byte[4096];
int bytesRead;

// Copy the file content


while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
// Close the streams
inputStream.close();
outputStream.close();

// Optionally, delete the original recording file


recordingFile.delete();
Toast.makeText(getApplicationContext(),"FILE CREATED: "+targetFileName,
Toast.LENGTH_LONG).show();

Department of Information Technology


VRA
// Optionally, perform any additional operations with the target file
// (e.g., display a confirmation message, etc.)

} catch (IOException e) {
e.printStackTrace();
// Handle the exception, e.g., display an error message
}
}
});

Button viewRecordedFilesButton = findViewById(R.id.viewRecordedFilesButton);


viewRecordedFilesButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Start the RecordedFilesActivity
Intent intent = new Intent(MainActivity.this, RecordedFilesActivity.class);
startActivity(intent);
}
});

Department of Information Technology


VRA

Output

Department of Information Technology


VRA

Department of Information Technology


VRA

Department of Information Technology


VRA

CONCLUSION

In conclusion, a virtual recording application stands as a transformative tool in the


realm of audio production, offering a gateway to professional-grade recording
experiences without the constraints of traditional studios or cumbersome equipment.
Through its user-friendly interface, versatile features, and seamless integration with
cloud storage and collaboration tools, it empowers users of all levels to unleash
their creativity and achieve studio-quality results from any location.

By prioritizing accessibility, convenience, and high-quality audio output, virtual


recording applications cater to the diverse needs of musicians, podcasters, content
creators, and audio enthusiasts alike. Real-time collaboration capabilities transcend
geographical boundaries, fostering a sense of community and enabling users to
connect and create together like never before.

Department of Information Technology


VRA

REFERENCES

 https://developer.android.com/reference
 https://stackoverflow.com/questions/23229789/how-do-i-reference-the-
android-documentation

Department of Information Technology

You might also like