Как открыть плеер при выборе файла из Spinner? - PullRequest
0 голосов
/ 16 марта 2020

У меня есть Spinner, который загружается с файлами из папки SD video, идея в том, что при выборе видео проигрыватель открывается и воспроизводится, или, по крайней мере, он открывается, и я нажимаю кнопку воспроизведения. Текст упражнения говорит следующее:

When entering the application, all the files contained in that folder must be read and displayed in a Spinner type control.
When clicking on one of them, it must be viewed using the application associated with the reproduction of system videos.

Это мой код:

public class MainActivity extends Activity implements AdapterView.OnItemSelectedListener {
private final int REQUEST_READ_EXTERNAL_STORAGE = 0;
private Spinner spinner;
private List<String> item = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    spinner = findViewById(R.id.spinner);
    spinner.setOnItemSelectedListener(this);
    pedirPermisos();
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, item);
    spinner.setAdapter(adapter);
}

private void pedirPermisos() {
    if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
        if (ContextCompat.checkSelfPermission(this,
                Manifest.permission.READ_EXTERNAL_STORAGE)
                != PackageManager.PERMISSION_GRANTED) {
            if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                    Manifest.permission.READ_EXTERNAL_STORAGE)) {
                Toast.makeText(this, "Se necesita acceso de lectura a la SD",
                        Toast.LENGTH_SHORT).show();
            }
            ActivityCompat.requestPermissions(this,
                    new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
                    REQUEST_READ_EXTERNAL_STORAGE);
        } else {
            Toast.makeText(this, "La memoria externa no está disponible",
                    Toast.LENGTH_SHORT).show();
        }
    }
}
public void onRequestPermissionsResult ( int requestCode, String[] permissions,
                                         int[] grantResults){
    switch (requestCode) {
        case 0:
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)
                leerSD();
            else
                Toast.makeText(this, "No se ha aceptado el permiso", Toast.LENGTH_SHORT).show();
            return;
        default:
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }
}

private void leerSD() {
    item = new ArrayList<String>();
    File f = new File(Environment.getExternalStorageDirectory() + "/videos/");
    File[] files = f.listFiles();
    for (int i = 0; i < files.length; i++) {
        File file = files[i];
        if (file.isDirectory())
            item.add(file.getName() + "/");
        else
            item.add(file.getName());
    }
}

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    String item = parent.getItemAtPosition(position).toString();
}

@Override
public void onNothingSelected(AdapterView<?> parent) {

}

В onItemSelected Я бы использовал код, чтобы открыть плеер, но я не знать, как это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...