Просмотр списка Firebase для видеопата - PullRequest
0 голосов
/ 12 сентября 2018

Я надеюсь, что вы можете помочь мне с этим. У меня есть база данных firebase, показанная в виде списка. (Работа)

Функциональность: Когда я нажимаю на определенный элемент, я хочу начать видео, равное элементу списка, с новым намерением.

но когда я нажимаю на элемент, я не могу заставить воспроизведение видео работать. Прямо сейчас это мой код.

MainActivity:

import android.content.Intent;
import android.nfc.Tag;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

import com.google.firebase.database.ChildEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    private DatabaseReference database;
    private ListView listView;


   private ArrayList<String> moves = new ArrayList<>(  );


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

        database = FirebaseDatabase.getInstance().getReference("name");
        listView = (ListView) findViewById( R.id.listview );


        final ArrayAdapter arrayAdapter = new ArrayAdapter( this, android.R.layout.simple_list_item_1, moves );

        listView.setAdapter( arrayAdapter );

        database.addChildEventListener( new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {

                String value = dataSnapshot.getValue(String.class);
                moves.add( value );
                arrayAdapter.notifyDataSetChanged();

            }

            @Override
            public void onChildChanged(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onChildRemoved(DataSnapshot dataSnapshot) {

            }

            @Override
            public void onChildMoved(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        } );




        listView.setOnItemClickListener( new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent intent = new Intent( getApplicationContext(), video_preview.class );


                intent.putExtra( "moves", moves.get( position ).toString() );
                startActivity( intent );
            }
        } );

    }
}

Мое новое намерение показано так. Предварительный просмотр видео:

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.MediaController;
import android.widget.TextView;
import android.widget.VideoView;

import com.google.firebase.database.ChildEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import java.util.ArrayList;

public class video_preview extends AppCompatActivity {

    String move = "";


  VideoView videoView;
   MediaController mediaController;

   TextView textView;

    private DatabaseReference databasePath;


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

        videoView = findViewById( R.id.videoView );
        mediaController = new MediaController( this );


        Intent intent = getIntent();
        move = intent.getStringExtra( "moves" );
        setTitle( move );


       databasePath = FirebaseDatabase.getInstance().getReference( "path" );

       databasePath.addChildEventListener( new ChildEventListener() {
           @Override
           public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                String value = dataSnapshot.getValue(String.class);

            videoView.setVideoPath("android.resource://" + getPackageName() + "/" + value);





           }

           @Override
           public void onChildChanged(DataSnapshot dataSnapshot, String s) {

           }

           @Override
           public void onChildRemoved(DataSnapshot dataSnapshot) {

           }

           @Override
           public void onChildMoved(DataSnapshot dataSnapshot, String s) {

           }

           @Override
           public void onCancelled(DatabaseError databaseError) {

           }
       } );


        mediaController.setAnchorView(videoView);

        videoView.setMediaController(mediaController);

        videoView.start();
    }
}

Надеюсь, вы поможете мне с этим?

Спасибо за ваше время и пациентов.

С уважением

...