Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Android TextureView में वीडियो कैसे चलाएं?

Android में TextureView पर वीडियो प्ले करने का पूरा गाइड

TextureView का उपयोग करके वीडियो चलाना SurfaceView से अधिक लचीला है क्योंकि यह व्यू हायरार्की में ठीक से एनिमेट, स्केल और ट्रांसफॉर्म हो सकता है।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में File → New Project चुनें।

चरण 2: लेआउट फ़ाइल (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="8dp"
    tools:context=".MainActivity">

    <TextureView
        android:id="@+id/textureView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

चरण 3: एसेट्स फोल्डर में वीडियो रखें

res → New → Folder → Assets Folder बनाएं और उसमें अपना वीडियो फाइल (जैसे videoplayback.mp4) कॉपी करें।

चरण 4: MainActivity.java

import androidx.appcompat.app.AppCompatActivity;
import android.content.res.AssetFileDescriptor;
import android.graphics.SurfaceTexture;
import android.media.MediaPlayer;
import android.os.Build;
import android.os.Bundle;
import android.view.Surface;
import android.view.TextureView;
import java.io.IOException;

public class MainActivity extends AppCompatActivity implements TextureView.SurfaceTextureListener, MediaPlayer.OnVideoSizeChangedListener {
    TextureView textureView;
    private MediaPlayer mediaPlayer;
    AssetFileDescriptor fileDescriptor;

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

        textureView = findViewById(R.id.textureView);
        textureView.setSurfaceTextureListener(this);
        mediaPlayer = new MediaPlayer();

        try {
            fileDescriptor = getAssets().openFd("videoplayback.mp4");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int width, int height) {
        Surface surface = new Surface(surfaceTexture);
        try {
            mediaPlayer.setSurface(surface);
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                mediaPlayer.setDataSource(fileDescriptor);
                mediaPlayer.prepareAsync();
                mediaPlayer.setOnPreparedListener(mp -> mediaPlayer.start());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {}
    @Override public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) { return false; }
    @Override public void onSurfaceTextureUpdated(SurfaceTexture surface) {}
    @Override public void onVideoSizeChanged(MediaPlayer mp, int width, int height) {}

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mediaPlayer != null) {
            mediaPlayer.release();
            mediaPlayer = null;
        }
    }
}

चरण 5: AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.sample">

    <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>

महत्वपूर्ण नोट्स

  • हमेशा onDestroy() में mediaPlayer.release() कॉल करें।
  • बड़ी फाइलों के लिए एसेट्स के बजाय रॉ फोल्डर या स्ट्रीमिंग URL बेहतर है।
  • आधुनिक ऐप्स में ExoPlayer (Media3) उपयोग करने की सलाह दी जाती है।
  1. एंड्रॉइड और iOS पर वीडियो लूप प्लेबैक: चरण-दर-चरण गाइड एंड्रॉइड और iOS पर वीडियो लूप प्लेबैक: चरण-दर-चरण गाइड

    क्या आप यह पता लगाने की कोशिश कर रहे हैं कि एंड्रॉइड पर वीडियो को लूप में कैसे चलाएं या iOS पर? हम समझते हैं कि जब आप किसी विशेष वीडियो को लूप पर चलाना चाहते हैं तो यह भ्रमित करने वाला हो सकता है क्योंकि सभी वीडियो प्लेयर्स में यह लूप फीचर नहीं होता। लेकिन चिंता न करें, इस छोटे गाइड के साथ हम आपकी म

  1. चरण-दर-चरण गाइड: अपने एंड्रॉइड फोन पर ऐप्स को सुरक्षित रूप से साइडलोड कैसे करें चरण-दर-चरण गाइड: अपने एंड्रॉइड फोन पर ऐप्स को सुरक्षित रूप से साइडलोड कैसे करें

    Android के बारे में सबसे अच्छी बात यह है कि यह आपको चुनने के लिए ढेर सारे रोमांचक ऐप्स के साथ खराब कर देता है। अकेले प्ले स्टोर पर लाखों ऐप्स उपलब्ध हैं। कोई फर्क नहीं पड़ता कि आप अपने एंड्रॉइड स्मार्टफोन पर कौन सा कार्य पूरा करने के इच्छुक हैं, प्ले स्टोर में आपके लिए कम से कम दस अलग-अलग ऐप्स होंगे

  1. एंड्रॉइड फोन वीडियो को स्थिर करें प्रोफेशनल क्वालिटी फुटेज के लिए एंड्रॉइड फोन वीडियो को स्थिर करें प्रोफेशनल क्वालिटी फुटेज के लिए

    आप अपने फोन पर रिकॉर्ड किए गए वीडियो को FPS (फ्रेम्स प्रति सेकंड) में माप सकते हैं; FPS जितना बेहतर होगा, वीडियो क्वालिटी उतनी ही बेहतर होगी। हालांकि, यह आवश्यक है कि आप वीडियो रिकॉर्ड करते समय अपने फोन को स्थिर रखें। आपके एंड्रॉइड फोन पर एक अच्छी क्वालिटी का कैमरा हो सकता है, लेकिन अगर आप वीडियो रि