如何从 Android 中的存储中获取音频文件?
当用户在您的应用程序中上传或发送音频文件时,需要从手机存储中选择音频文件。因此,本文主要关注从手机存储中获取音频文件作为 URI。
分步实施
第 1 步:创建一个新项目
要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。请注意,选择Java作为编程语言。
步骤 2:使用 activity_main.xml 文件
我们的应用程序的 XML 布局包含一个 Textview,如果我们点击它,我们可以从我们的存储中选择一个音频文件,然后当我们选择它时,文本视图的文本更改为音频选择。使用以下代码实现 XML 布局。
XML
Java
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private final int PICK_AUDIO = 1;
Uri AudioUri;
TextView select_Audio;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
select_Audio = findViewById(R.id.select_Audio);
// SETTING ONCLICK LISTENER ------ ON TEXT VIEW CLICK TO TAKE AUDIO INPUT
select_Audio.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent audio = new Intent();
audio.setType("audio/*");
audio.setAction(Intent.ACTION_OPEN_DOCUMENT);
startActivityForResult(Intent.createChooser(audio, "Select Audio"), PICK_AUDIO);
}
});
}
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_AUDIO && resultCode == RESULT_OK) {
// Audio is Picked in format of URI
AudioUri = data.getData();
select_Audio.setText("Audio Selected");
}
}
}
第 3 步:使用 MainActivity。 Java文件
在这里,我们触发“音频”类型的意图和ACTION_GET_CONTENT类型的动作。转到主活动。 Java文件,参考如下代码。下面是MainActivity的代码。 Java文件。代码中添加了注释以更详细地理解代码。
Java
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private final int PICK_AUDIO = 1;
Uri AudioUri;
TextView select_Audio;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
select_Audio = findViewById(R.id.select_Audio);
// SETTING ONCLICK LISTENER ------ ON TEXT VIEW CLICK TO TAKE AUDIO INPUT
select_Audio.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent audio = new Intent();
audio.setType("audio/*");
audio.setAction(Intent.ACTION_OPEN_DOCUMENT);
startActivityForResult(Intent.createChooser(audio, "Select Audio"), PICK_AUDIO);
}
});
}
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_AUDIO && resultCode == RESULT_OK) {
// Audio is Picked in format of URI
AudioUri = data.getData();
select_Audio.setText("Audio Selected");
}
}
}