Search This Blog

Popular Posts

Saturday, October 31, 2020

MediaPlayer



package com.example.mediaplayer;



import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.ActionBarOverlayLayout;

import android.animation.TimeAnimator;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.media.Image;
import android.media.MediaCodec;
import android.media.MediaExtractor;
import android.media.MediaMetadata;
import android.media.MediaMetadataRetriever;
import android.media.MediaPlayer;
import android.media.MediaTimestamp;
import android.media.TimedMetaData;
import android.media.TimedText;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.view.Display;
import android.view.DisplayCutout;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.widget.HorizontalScrollView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;

import java.io.IOException;
import java.security.Permission;
import java.util.Locale;
import java.util.Map;

public class MainActivity extends AppCompatActivity {
private Uri myvidou_uri=null;

private static final int PICk_vidoreust=1001;
private MediaPlayer mediaPlayer1;
private TimeAnimator mTimeAnimator = new TimeAnimator();
private boolean isplay=false;
private LinearLayout linearLayout1;
//private final int maxmidaplyer=0;


@SuppressLint("ClickableViewAccessibility")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);




SurfaceView surfaceView1=(SurfaceView)findViewById(R.id.surfaceView2);
final TextView textView1=(TextView)findViewById(R.id.textView2);



surfaceView1.getHolder().addCallback(new SurfaceHolder.Callback() {
@SuppressLint("SetTextI18n")
@Override
public void surfaceCreated(SurfaceHolder holder) {
if(myvidou_uri!=null){
String string1="";
MediaMetadataRetriever mediaMetadataRetriever1 =new MediaMetadataRetriever();
mediaMetadataRetriever1.setDataSource(getApplicationContext(), Uri.parse(myvidou_uri.toString()));


mediaPlayer1=MediaPlayer.create(getApplicationContext(),myvidou_uri);


mediaPlayer1.setDisplay(holder);





textView1.setText("info\n");




String infoplayrr="METADATA_KEY_ALBUM"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM)+"\n";
infoplayrr=infoplayrr+"METADATA_KEY_ALBUMARTIST"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUMARTIST)+"\n";
infoplayrr=infoplayrr+"METADATA_KEY_ARTIST"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST)+"\n";
infoplayrr=infoplayrr+"METADATA_KEY_AUTHOR"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_AUTHOR)+"\n";
infoplayrr=infoplayrr+"METADATA_KEY_BITRATE"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_BITRATE)+"\n";
// infoplayrr=infoplayrr+"METADATA_KEY_CAPTURE_FRAMERATE"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_CAPTURE_FRAMERATE).toString()+"\n";
infoplayrr=infoplayrr+"METADATA_KEY_CD_TRACK_NUMBER"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_CD_TRACK_NUMBER)+"\n";
infoplayrr=infoplayrr+"METADATA_KEY_COMPILATION"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_COMPILATION)+"\n";
infoplayrr=infoplayrr+"METADATA_KEY_COMPOSER"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_COMPOSER)+"\n";
infoplayrr=infoplayrr+"METADATA_KEY_DATE"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DATE)+"\n";
infoplayrr=infoplayrr+"METADATA_KEY_DISC_NUMBER"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DISC_NUMBER)+"\n";
infoplayrr=infoplayrr+"METADATA_KEY_DURATION"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION)+"\n";
// infoplayrr=infoplayrr+"METADATA_KEY_EXIF_LENGTH"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_EXIF_LENGTH).toString()+"\n";
//infoplayrr=infoplayrr+"METADATA_KEY_EXIF_OFFSET"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_EXIF_OFFSET).toString()+"\n";
infoplayrr=infoplayrr+"METADATA_KEY_GENRE"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_GENRE)+"\n";
infoplayrr=infoplayrr+"METADATA_KEY_HAS_AUDIO"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_HAS_AUDIO)+"\n";
// infoplayrr=infoplayrr+"METADATA_KEY_HAS_IMAGE"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_HAS_IMAGE).toString()+"\n";
// infoplayrr=infoplayrr+"METADATA_KEY_HAS_VIDEO"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_HAS_VIDEO).toString()+"\n";
//infoplayrr=infoplayrr+"METADATA_KEY_IMAGE_COUNT"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_IMAGE_COUNT).toString()+"\n";
//infoplayrr=infoplayrr+"METADATA_KEY_IMAGE_HEIGHT"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_IMAGE_HEIGHT).toString()+"\n";
//infoplayrr=infoplayrr+"METADATA_KEY_IMAGE_PRIMARY"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_IMAGE_PRIMARY).toString()+"\n";
//infoplayrr=infoplayrr+"METADATA_KEY_IMAGE_ROTATION"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_IMAGE_ROTATION).toString()+"\n";
//infoplayrr=infoplayrr+"METADATA_KEY_IMAGE_WIDTH"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_IMAGE_WIDTH).toString()+"\n";
infoplayrr=infoplayrr+"METADATA_KEY_TITLE"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE)+"\n";
infoplayrr=infoplayrr+"METADATA_KEY_MIMETYPE"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_MIMETYPE)+"\n";
infoplayrr=infoplayrr+"METADATA_KEY_NUM_TRACKS"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_NUM_TRACKS)+"\n";
infoplayrr=infoplayrr+"METADATA_KEY_LOCATION"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_LOCATION)+"\n";
// infoplayrr=infoplayrr+"METADATA_KEY_VIDEO_FRAME_COUNT"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_FRAME_COUNT).toString()+"\n";
infoplayrr=infoplayrr+"METADATA_KEY_VIDEO_HEIGHT"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT)+"\n";
// infoplayrr=infoplayrr+"METADATA_KEY_VIDEO_ROTATION"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION).toString()+"\n";
infoplayrr=infoplayrr+"METADATA_KEY_VIDEO_WIDTH"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH)+"\n";
infoplayrr=infoplayrr+"METADATA_KEY_WRITER"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_WRITER)+"\n";
infoplayrr=infoplayrr+"METADATA_KEY_YEAR"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_YEAR)+"\n";
infoplayrr=infoplayrr+"METADATA_KEY_HAS_VIDEO"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_HAS_VIDEO)+"\n";

infoplayrr=infoplayrr+"METADATA_KEY_HAS_AUDIO"+"="+mediaMetadataRetriever1.extractMetadata(MediaMetadataRetriever.METADATA_KEY_HAS_AUDIO)+"\n";

textView1.setText(textView1.getText()+infoplayrr);

mediaPlayer1.start();
isplay=true;


}
}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {

}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {

}
});



}
public void playvido(View view){
// mediaPlayer1.start();

}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==PICk_vidoreust && resultCode==RESULT_OK){
assert data != null;
myvidou_uri=data.getData();
}
}
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
public void mediaretverar(View view){
Intent pickvido=new Intent(Intent.ACTION_PICK);
pickvido.setTypeAndNormalize("Video/*");
startActivityForResult(pickvido,PICk_vidoreust);




}

}


---------------------------------------------manifest--------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.mediaplayer">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:ignore="ProtectedPermissions"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" tools:ignore="ProtectedPermissions"/>


<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>
-----------------------------------------------------------------------------------------------------

----------------------------------------------layout-------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>

<ScrollView android:layout_alignParentStart="true" tools:context=".MainActivity" android:layout_alignParentLeft="true" android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/main_layout2" xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android">


<LinearLayout android:layout_height="wrap_content" android:layout_width="wrap_content" android:orientation="vertical">


<HorizontalScrollView android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/HorizontalScrollView1" android:verticalScrollbarPosition="right" android:scrollbars="horizontal|none" android:requiresFadingEdge="horizontal" android:layout_gravity="clip_horizontal|center|center_horizontal|center_vertical|fill_vertical|end">


<LinearLayout android:layout_height="match_parent" android:layout_width="wrap_content" android:orientation="horizontal">

<Button
android:id="@+id/button13"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="mediaretverar"
android:text="add_play" />

</LinearLayout>

</HorizontalScrollView>


-<HorizontalScrollView android:layout_height="match_parent" android:layout_width="match_parent">


-<LinearLayout android:layout_height="match_parent" android:layout_width="wrap_content" android:orientation="horizontal">

<SurfaceView android:layout_height="357dp" android:layout_width="437dp" android:id="@+id/surfaceView2" android:layout_weight="1"/>

</LinearLayout>

</HorizontalScrollView>


-


-

<HorizontalScrollView android:layout_height="match_parent" android:layout_width="match_parent">


-<LinearLayout android:layout_height="match_parent" android:layout_width="wrap_content" android:orientation="horizontal">

<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/textView2" android:text="TextView" android:layout_weight="1"/>

</LinearLayout>

</HorizontalScrollView>


-


-


-

</LinearLayout>

</ScrollView>
-------------------------------------------------------------------------------------------------------




 

No comments:

Post a Comment

Android Studio Java xml Learn free lessons in programming Android applications We will offer everything important for programming Android applications Follow us and subscribe with us

  بيئة تطوير أندرويد جافا xml تعلم دروسًا مجانية في برمجة تطبيقات Android سنقدم كل شيء مهم لبرمجة تطبيقات Android تابعنا واشترك معنا اند...