VideoView 处理 MainActivity 但不处理我的 Fragment

VideoView working on MainActivity but doesnt work on my Fragment

下面是提供的代码,我正在尝试将此视频视图转移到我的主页(片段 java class)。我见过有人使用 get 方法,但我总是出错。视频视图在 MainActivity java class.

上运行良好

主要ActivityJavaClass

public class MainActivity extends AppCompatActivity {

    VideoView video;
    String video_url = "https://www.daddyandco.com.my/Daddy-Co-Bartender-Promo.mp4";
    ProgressDialog pd;

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

        video = (VideoView) findViewById(R.id.video);
        pd = new ProgressDialog(MainActivity.this);
        pd.setMessage("Buffering...");
        pd.show();
        Uri uri = Uri.parse(video_url);
        video.setVideoURI(uri);
        video.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                pd.dismiss();
            }
        });
        MediaController mediaController = new MediaController(this);
        mediaController.setAnchorView(video);
        video.setMediaController(mediaController);
    }
}

首页片段JavaClass

public class HomeFragment extends Fragment {
    

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_home, container, false);
    }

如果您正在使用 Fragment init View view = inflate.....

使用下面的代码它适合你

 public class HomeFragment extends Fragment {

    VideoView video;
    String video_url = "https://www.daddyandco.com.my/Daddy-Co-Bartender-Promo.mp4";
    ProgressDialog pd;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.fragment_home, container, false);
        video = view.findViewById(R.id.video);
        pd = new ProgressDialog(view.getContext());
        pd.setMessage("Buffering...");
        pd.show();
        Uri uri = Uri.parse(video_url);
        video.setVideoURI(uri);
        video.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                pd.dismiss();
            }
        });
        MediaController mediaController = new MediaController(view.getContext());
        mediaController.setAnchorView(video);
        video.setMediaController(mediaController);
        return view;
    }
}