Я использую android studio и хочу создать приложение, которое сможет выбирать аудиофайл WhatsApp (и прослушивать его раньше), затем оно будет загружать это аудио в Google Firebase.
Я уже подключился к своемуFirebase и может выбрать аудио-файл и загрузить его, но у меня есть 2 проблемы:
Когда я нажал на кнопку выбора, селектор открывается (как я хочу), но не в текущем пути.Я хочу, чтобы при выборе пути открытия аудио-пути в WhatsApp (Whatsapp / Medua / Whatsapp Audio) я открыл.
Когда я иду по пути Whatsapp (Whatsapp / Medua / Whatsapp Audio), я могу 'Не могу прослушать аудиофайл, я могу выбрать только его, и я не могу знать, какой аудиофайл я выберу (потому что я его не слышу), поэтому я хочу сделать выбор, чтобы услышать его, прежде чем выбрать его.
ПОЖАЛУЙСТА, ПОМОГИТЕ МНЕ
Вот что я написал:
public class MenuActivity extends AppCompatActivity {
private StorageReference storageReference;
Button btnChoose, btnUpload;
Uri filePath;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
btnChoose = findViewById(R.id.btnChoose);
btnUpload = findViewById(R.id.btnUpload);
storageReference = FirebaseStorage.getInstance().getReference();
btnChoose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setType("*/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select an audio"), 1);
}
});
btnUpload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (filePath != null){
StorageReference audioReference = storageReference.child("audio/fileName.opus");
audioReference.putFile(filePath).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Toast.makeText(MenuActivity.this, "Uploaded", Toast.LENGTH_SHORT).show();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(MenuActivity.this, "Failed", Toast.LENGTH_SHORT).show();
}
});
} else {
Toast.makeText(MenuActivity.this, "Error", Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK && data != null && data.getData() != null){
filePath = data.getData();
}
}
}