DSP System Design Lab
Name : Yaram Ektha Suhitha Roll No : 20EE38019
Objective : To design and develop a Basic Android app that will
record audio and play it.
Code :
package [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class MainActivity extends AppCompatActivity {
private static int MICROPHONE_PERMISSION_CODE = 200;
private static int STORING_PERMISSION_CODE = 300;
private static int READING_PERMISSION_CODE = 300;
private OkHttpClient okHttpClient;
MediaRecorder mediaRecorder;
MediaPlayer mediaPlayer;
Button uploadBtn;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
[Link](savedInstanceState);
getSupportActionBar().hide();
setContentView([Link].activity_main);
okHttpClient = new OkHttpClient();
if (isMicrophonePresent()) {
getMicrophonePermission();
getStoringPermission();
getReadingPermission();
}
uploadBtn = findViewById([Link].demo_upload_btn);
[Link](new [Link]() {
@Override
public void onClick(View v) {
uploadToServer();
}
});
}
public void btnRecordPressed(View v) {
try {
mediaRecorder = new MediaRecorder();
[Link]([Link]);
[Link]([Link].MPEG_4);
[Link]([Link].AMR_NB);
[Link](16*96000);
[Link](96000);
[Link](getRecordingFilePath());
[Link]();
[Link]();
[Link](this, "Recording is started",
Toast.LENGTH_SHORT).show();
}
catch (Exception e) {
[Link]();
}
}
public void btnStopPressed(View v) {
[Link]();
[Link]();
mediaRecorder = null;
[Link](this, "Recording Stopped",
Toast.LENGTH_LONG).show();
//String postUrl = "[Link]
}
public void btnPlayPressed(View v) {
try {
mediaPlayer = new MediaPlayer();
[Link](getRecordingFilePath());
[Link]();
[Link]();
TextView textView = findViewById([Link]);
String msg = "Playing: " + getRecordingFilePath();
[Link](msg);
}
catch (Exception e) {
[Link]();
}
}
private boolean isMicrophonePresent() {
if
([Link]().hasSystemFeature(PackageManager.FEATURE_MI
CROPHONE)) {
return true;
}
else {
return false;
}
}
private void getMicrophonePermission() {
if([Link](this,
[Link].RECORD_AUDIO) ==
PackageManager.PERMISSION_DENIED) {
[Link](this, new String[]
{[Link].RECORD_AUDIO}, MICROPHONE_PERMISSION_CODE);
}
}
private void getStoringPermission() {
if([Link](this,
[Link].WRITE_EXTERNAL_STORAGE) ==
PackageManager.PERMISSION_DENIED) {
[Link](this, new String[]
{[Link].WRITE_EXTERNAL_STORAGE},
STORING_PERMISSION_CODE);
}
}
private void getReadingPermission() {
if([Link](this,
[Link].READ_EXTERNAL_STORAGE) ==
PackageManager.PERMISSION_DENIED) {
[Link](this, new String[]
{[Link].READ_EXTERNAL_STORAGE},
READING_PERMISSION_CODE);
}
}
private String getRecordingFilePath() {
ContextWrapper contextWrapper = new
ContextWrapper(getApplicationContext());
File musicDirectory =
[Link](Environment.DIRECTORY_MUSIC);
File file = new File(musicDirectory,"testRecordingFile" +
".wav");
return [Link]();
}
public void uploadToServer() {
File audioPath = new
File([Link]().getAbsolutePath() +
"/Android/data/[Link]/files/Music/");
File sourceFile = new
File(audioPath,"[Link]");
[Link] builder=new [Link]();
[Link]([Link]);
[Link]("file",[Link]().toString(),
[Link]([Link]("/"),sourceFile));
MultipartBody multipartBody = [Link]();
String urlStr = "[Link] + "[Link]" + ":" + 5000 +
"/uploadfile";
Request request = new Request
.Builder()
.post(multipartBody)
.url(urlStr)
.build();
OkHttpClient okHttpClient = new OkHttpClient();
[Link](request).enqueue(new Callback() {
@Override
public void onFailure(@NotNull Call call, @NotNull
IOException e) {
runOnUiThread(new Runnable() {
@Override
public void run() {
[Link]([Link], "Something
went wrong:" + " " + [Link](), Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onResponse(@NotNull Call call, @NotNull Response
response) throws IOException {
runOnUiThread(new Runnable() {
@Override
public void run() {
try {
[Link]([Link],[Link]().string(),[Link]
TH_LONG).show();
} catch (IOException e) {
[Link]();
}
}
});
}
});
}
}
Display of developed App main page
Screen Recording of Recording and playing my voice in the app
developed by using this code
vidma_recorder_1109
2023_212242.mp4