எவ்வாறு Android Studio யில் Video Player, Admob Ads, Download Butto போன்றவறை உள்ளீடு செய்வது ?



 1app > java > main>VideoDisplayingActivity க்கு சென்று கீழே தரப்பட்டுள்ள Code ஐ உள்ளீடு செய்யுங்கள்.

package com.mac.it.solution.vidworld2.VideoDisplayingActivity;

import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.bumptech.glide.Glide;
import com.facebook.ads.Ad;
import com.facebook.ads.AdError;
import com.facebook.ads.AudienceNetworkAds;
import com.facebook.ads.InterstitialAdListener;
import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.InterstitialAd;
import com.mac.it.solution.vidworld2.R;
import com.mac.it.solution.vidworld2.VideoUploadActivitys.UploadVideoActivity;

import java.util.List;


public class VideoAdapter extends RecyclerView.Adapter<VideoAdapter.MyViewHolder> {

Context
mContext;
List<UploadVideoActivity>
mData ;
public static com.google.android.gms.ads.InterstitialAd InterstitialAd;
com.facebook.ads.InterstitialAd
interstitialAd;
String
TAG;
boolean ADMOBISLOADED;




public VideoAdapter(Context mContext, List<UploadVideoActivity> mData) {
this.mContext = mContext;
this.mData = mData;
}



@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

View row = LayoutInflater.
from(mContext).inflate(R.layout.row_video_items,parent,false);
return new MyViewHolder(row);


}

@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.
VideoTitle.setText(mData.get(position).getTitle());
Glide.
with(mContext).load(mData.get(position).getPictureUrl()).into(holder.VideoThumbnail);
holder.
VideoCategory.setText(mData.get(position).getSelectedCategory());


}


@Override
public int getItemCount() {
return mData.size();
}

public class MyViewHolder extends RecyclerView.ViewHolder {

TextView
VideoTitle;
ImageView
VideoThumbnail;
TextView
VideoCategory;







public MyViewHolder(View itemView) {
super(itemView);



VideoThumbnail = itemView.findViewById(R.id.RowVideoThumbnail);
VideoTitle = itemView.findViewById(R.id.RowVideoTitle);
VideoCategory = itemView.findViewById(R.id.RowVideoCategory);
InterstitialAd = new InterstitialAd(mContext);
InterstitialAd.setAdUnitId("ca-app-pub-4810115421957345/7946636531");
InterstitialAd.loadAd(new AdRequest.Builder().build());
InterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
Log.
d(TAG, "Admob Interstitial Loaded");
ADMOBISLOADED = false;

}

@Override
public void onAdFailedToLoad(int errorCode) {
Log.
d(TAG, "Admob Interstitial Error");

}

@Override
public void onAdOpened() {
// Code to be executed when the ad is displayed.
}

@Override
public void onAdLeftApplication() {
// Code to be executed when the user has left the app.
}

@Override
public void onAdClosed() {
Intent VideoClickedActivity =
new Intent(mContext, ClickedVideoOpenActivity.class);
int position = getAdapterPosition();
VideoClickedActivity.putExtra(
"title",mData.get(position).getTitle());
VideoClickedActivity.putExtra(
"postKey",mData.get(position).getPostKey());
VideoClickedActivity.putExtra(
"VideoUrl",mData.get(position).getvideo());
VideoClickedActivity.putExtra(
"ImgUrl",mData.get(position).getPictureUrl());
mContext.startActivity(VideoClickedActivity);

}
});





itemView.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
if (InterstitialAd.isLoaded()) {
InterstitialAd.show();

}
else {
Intent VideoClickedActivity =
new Intent(mContext, ClickedVideoOpenActivity.class);
int position = getAdapterPosition();
VideoClickedActivity.putExtra(
"title",mData.get(position).getTitle());
VideoClickedActivity.putExtra(
"postKey",mData.get(position).getPostKey());
VideoClickedActivity.putExtra(
"VideoUrl",mData.get(position).getvideo());
VideoClickedActivity.putExtra(
"ImgUrl",mData.get(position).getPictureUrl());
mContext.startActivity(VideoClickedActivity);

}





}
});



}




}

}


2app.java>main>vidworld2.VideoDisplayingActivity க்கு சென்று கீழே தரப்பட்டுள்ள Code ஐ உள்ளீடு செய்யுங்கள்.
package com.mac.it.solution.vidworld2.VideoDisplayingActivity;

import android.Manifest;
import android.annotation.TargetApi;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.media.MediaPlayer;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.PowerManager;
import android.os.StrictMode;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.MediaController;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.VideoView;

import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;


import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;
import com.google.firebase.database.FirebaseDatabase;
import com.mac.it.solution.vidworld2.R;
import com.squareup.picasso.Picasso;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import static android.net.Uri.parse;


public class ClickedVideoOpenActivity extends AppCompatActivity {
private static final String TAG = "TAG" ;
String PostKey;
VideoView VideoPlayerView;
MediaController mediaController;
private AdView mAdView;

FirebaseDatabase firebaseDatabase;
ImageView ShareWhatsAppButton,ShareButton,DownloadButton,VideoViewPlayButton,thumpic;
public TextView VideoTitle;
String fileN = null ;
Dialog downloadDialog;
ImageButton VideoPlayerClose;
Button DownloadButtonIcon;
Dialog VideoPlayer;
ProgressBar VideoPlayerProgresss;

public static final int PERMISSIONS_REQUEST = 123;


@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.clicked_video_player_activity);


firebaseDatabase = FirebaseDatabase.getInstance();
ShareButton =findViewById(R.id.OpenVideoShare);

ShareWhatsAppButton =findViewById(R.id.OpenVideoShareWhatsapp);
DownloadButton =findViewById(R.id.OpenVideoDownlod);
DownloadButtonIcon = findViewById(R.id.download_btn);
VideoTitle = findViewById(R.id.OpenVideoTitle);
thumpic = findViewById(R.id.ImgURLPIC);
VideoViewPlayButton = findViewById(R.id.playBtn);

MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
}
});
mAdView = findViewById(R.id.AdsView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);

//videoBar = findViewById(R.id.progressBarVideo);
//videoBar.setMax(100);

String VideoTitleText = getIntent().getExtras().getString("title");
VideoTitle.setText(VideoTitleText);
PostKey = getIntent().getExtras().getString("postKey");
String ImgUrl = getIntent().getExtras().getString("ImgUrl");
Picasso.get().load(ImgUrl).into(thumpic);

//bufferProgressBar.setVisibility(View.VISIBLE);
thumpic.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

PopVideoPlayer();


}
});

VideoViewPlayButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

PopVideoPlayer();


}
});
DownloadButtonIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(checkPermission()){
checkFolder();
String videoUrl = getIntent().getExtras().getString("VideoUrl");
Download(videoUrl);
Toast.makeText(ClickedVideoOpenActivity.this, "Downloading...!", Toast.LENGTH_SHORT).show();
}else{
checkPermission();

}



}
});

DownloadButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(checkPermission()){
checkFolder();
String videoUrl = getIntent().getExtras().getString("VideoUrl");
Download(videoUrl);
Toast.makeText(ClickedVideoOpenActivity.this, "Downloading...!", Toast.LENGTH_SHORT).show();
}else{
checkPermission();

}



}
});
ShareWhatsAppButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(checkPermission()){
checkFolder();
ShareWhatsApp();
}else{
checkPermission();

}



}
});
ShareButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

if(checkPermission()){
checkFolder();
share();
}else{
checkPermission();

}



}
});
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy(builder.build());


}

@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)
private void PopVideoPlayer() {
VideoPlayer = new Dialog(this);
VideoPlayer.setContentView(R.layout.activity_video_player);
VideoPlayer.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
VideoPlayer.getWindow().setLayout(Toolbar.LayoutParams.MATCH_PARENT,Toolbar.LayoutParams.WRAP_CONTENT);
VideoPlayer.getWindow().getAttributes().gravity = Gravity.FILL_HORIZONTAL;

VideoPlayerView = VideoPlayer.findViewById(R.id.videoView2);
VideoPlayerClose = VideoPlayer.findViewById(R.id.close_button);
VideoPlayerProgresss = VideoPlayer.findViewById(R.id.VideoPlayerProgress);
mediaController = new android.widget.MediaController(this);
mediaController.setAnchorView(VideoPlayerView);
VideoPlayerView.setMediaController(mediaController);
String videoUrl = getIntent().getExtras().getString("VideoUrl");
VideoPlayerView.setVideoURI(parse(videoUrl));
VideoPlayer.show();
VideoPlayerView.setOnInfoListener(new MediaPlayer.OnInfoListener() {
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
if (MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START == what) {
VideoPlayerProgresss.setVisibility(View.GONE);
}
if (MediaPlayer.MEDIA_INFO_BUFFERING_START == what) {
VideoPlayerProgresss.setVisibility(View.VISIBLE);
}
if (MediaPlayer.MEDIA_INFO_BUFFERING_END == what) {
VideoPlayerProgresss.setVisibility(View.VISIBLE);
}
return false;
}
});

VideoPlayerView.start();

VideoPlayerProgresss.setVisibility(View.VISIBLE);

VideoPlayerClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
VideoPlayer.dismiss();
}
});


}


private void ShareWhatsApp() {
String VideoTitleText = getIntent().getExtras().getString("title");
String videoUrl = getIntent().getExtras().getString("VideoUrl");
String Videopath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/VidWorld/" + VideoTitleText+".mp4";
File Videdir = new File(Videopath);
boolean isAlReadyDownloadedVideo = Videdir.exists();
if (!isAlReadyDownloadedVideo) {
newDownload(videoUrl);
}
if (isAlReadyDownloadedVideo) {
shareWhatsapp();
Log.d("Folder", "Already Download Video");
}


}



private void shareWhatsapp() {
String VideoTitleText = getIntent().getExtras().getString("title");
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, parse("file://" + Environment.getExternalStorageDirectory().getAbsolutePath() + "/VidWorld/" + VideoTitleText+".mp4"));
shareIntent.setType("video/*");
shareIntent.setPackage("com.whatsapp");

startActivity(Intent.createChooser(shareIntent, "Share"));
;
}
private void share() {
String VideoTitleText = getIntent().getExtras().getString("title");
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, parse("file://" + Environment.getExternalStorageDirectory().getAbsolutePath() + "/VidWorld/" + VideoTitleText+".mp4"));
shareIntent.setType("video/*");

startActivity(Intent.createChooser(shareIntent, "Share"));
;
}


//hare you can start downloding video
public void newDownload(String videoUrl) {
final DownloadTask downloadTask = new DownloadTask(ClickedVideoOpenActivity.this);
downloadTask.execute(videoUrl);
}
public void Download(String videoUrl) {
final NormalDownloadTask normalDownloadTask = new NormalDownloadTask(ClickedVideoOpenActivity.this);
normalDownloadTask.execute(videoUrl);
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public boolean checkPermission() {
int currentAPIVersion = Build.VERSION.SDK_INT;
if (currentAPIVersion >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(ClickedVideoOpenActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(ClickedVideoOpenActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
AlertDialog.Builder alertBuilder = new AlertDialog.Builder(ClickedVideoOpenActivity.this);
alertBuilder.setCancelable(true);
alertBuilder.setTitle("Please Allow the Permission ");
alertBuilder.setMessage("if you didn't allow the Permission You Can't Download Videos and Images");
alertBuilder.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public void onClick(DialogInterface dialog, int which) {
ActivityCompat.requestPermissions(ClickedVideoOpenActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSIONS_REQUEST);
}
});
AlertDialog alert = alertBuilder.create();
alert.show();
} else {
ActivityCompat.requestPermissions(ClickedVideoOpenActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSIONS_REQUEST);
}
return false;
} else {
return true;
}
} else {
return true;
}
}

public void checkFolder() {
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/VidWorld/";
File dir = new File(path);
boolean isDirectoryCreated = dir.exists();
if (!isDirectoryCreated) {
isDirectoryCreated = dir.mkdir();
}
if (isDirectoryCreated) {

Log.d("Folder", "Already Created");
}



}
@Override
public void onPause() {

super.onPause();
}

@Override
public void onResume() {
super.onResume();

}


@Override
public void onDestroy() {

super.onDestroy();
}





}


3.app > res > layout> clicked_video_player_activity க்கு சென்று கீழே தரப்பட்டுள்ள Code ஐ உள்ளீடு செய்யுங்கள்.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/open_video_bg">


<ImageView
android:id="@+id/OpenVideoDownlod"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginTop="8dp"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="@+id/OpenVideoShare"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/OpenVideoShare"
app:layout_constraintTop_toBottomOf="@+id/IMGCard"
app:srcCompat="@drawable/download_icon" />

<ImageView
android:id="@+id/OpenVideoShareWhatsapp"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginTop="8dp"
android:visibility="visible"
app:layout_constraintEnd_toStartOf="@+id/OpenVideoShare"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/IMGCard"
app:srcCompat="@drawable/whatapp_icon" />

<ImageView
android:id="@+id/OpenVideoShare"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginTop="8dp"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="@+id/OpenVideoShareWhatsapp"
app:layout_constraintEnd_toStartOf="@+id/OpenVideoDownlod"
app:layout_constraintStart_toEndOf="@+id/OpenVideoShareWhatsapp"
app:layout_constraintTop_toBottomOf="@+id/IMGCard"
app:srcCompat="@drawable/share_icon" />

<androidx.cardview.widget.CardView
android:id="@+id/IMGCard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/video_photo"
app:cardCornerRadius="5dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/video_photo">

<ImageView
android:id="@+id/ImgURLPIC"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/video_photo"

android:padding="10dp"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<ImageButton
android:id="@+id/playBtn"
android:layout_width="80dp"
android:layout_height="80dp"
android:background="@drawable/play_button_icon"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />

<TextView
android:id="@+id/OpenVideoTitle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginBottom="8dp"
android:gravity="center|right|left"
android:text="Video Title"
android:textColor="@color/colorNavText"
android:textSize="20dp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/ImgURLPIC"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toEndOf="@+id/playBtn"
app:layout_constraintTop_toTopOf="@+id/ImgURLPIC"
app:layout_constraintVertical_bias="1.0" />
</androidx.constraintlayout.widget.ConstraintLayout>


</androidx.cardview.widget.CardView>


<com.google.android.gms.ads.AdView
android:id="@+id/AdsView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:adSize="MEDIUM_RECTANGLE"
app:adUnitId="ca-app-pub-4810115421957345/6556689356"
app:layout_constraintBottom_toTopOf="@+id/download_btn"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.591"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/OpenVideoShare"/>
<Button
android:id="@+id/download_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/download_button"

app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/AdsView" />




</androidx.constraintlayout.widget.ConstraintLayout>

கருத்துரையிடுக

Post a Comment (0)

புதியது பழையவை