মিডিয়া3
সর্বশেষ আপডেট | স্থিতিশীল রিলিজ | মুক্তির প্রার্থী | বিটা রিলিজ | আলফা রিলিজ |
---|---|---|---|---|
25 জুলাই, 2024 | 1.4.0 | - | - | - |
নির্ভরতা ঘোষণা করা
Media3 এর উপর নির্ভরতা যোগ করতে, আপনাকে অবশ্যই আপনার প্রকল্পে Google Maven সংগ্রহস্থল যোগ করতে হবে। আরও তথ্যের জন্য Google এর Maven সংগ্রহস্থল পড়ুন।
আপনার অ্যাপ বা মডিউলের জন্য build.gradle
ফাইলে আপনার প্রয়োজনীয় আর্টিফ্যাক্টগুলির জন্য নির্ভরতা যোগ করুন:
গ্রোভি
dependencies { def media3_version = "1.4.1" // For media playback using ExoPlayer implementation "androidx.media3:media3-exoplayer:$media3_version" // For DASH playback support with ExoPlayer implementation "androidx.media3:media3-exoplayer-dash:$media3_version" // For HLS playback support with ExoPlayer implementation "androidx.media3:media3-exoplayer-hls:$media3_version" // For SmoothStreaming playback support with ExoPlayer implementation "androidx.media3:media3-exoplayer-smoothstreaming:$media3_version" // For RTSP playback support with ExoPlayer implementation "androidx.media3:media3-exoplayer-rtsp:$media3_version" // For MIDI playback support with ExoPlayer (see additional dependency requirements in // https://github.com/androidx/media/blob/release/libraries/decoder_midi/README.md) implementation "androidx.media3:media3-exoplayer-midi:$media3_version" // For ad insertion using the Interactive Media Ads SDK with ExoPlayer implementation "androidx.media3:media3-exoplayer-ima:$media3_version" // For loading data using the Cronet network stack implementation "androidx.media3:media3-datasource-cronet:$media3_version" // For loading data using the OkHttp network stack implementation "androidx.media3:media3-datasource-okhttp:$media3_version" // For loading data using librtmp implementation "androidx.media3:media3-datasource-rtmp:$media3_version" // For building media playback UIs implementation "androidx.media3:media3-ui:$media3_version" // For building media playback UIs for Android TV using the Jetpack Leanback library implementation "androidx.media3:media3-ui-leanback:$media3_version" // For exposing and controlling media sessions implementation "androidx.media3:media3-session:$media3_version" // For extracting data from media containers implementation "androidx.media3:media3-extractor:$media3_version" // For integrating with Cast implementation "androidx.media3:media3-cast:$media3_version" // For scheduling background operations using Jetpack Work's WorkManager with ExoPlayer implementation "androidx.media3:media3-exoplayer-workmanager:$media3_version" // For transforming media files implementation "androidx.media3:media3-transformer:$media3_version" // For applying effects on video frames implementation "androidx.media3:media3-effect:$media3_version" // For muxing media files implementation "androidx.media3:media3-muxer:$media3_version" // Utilities for testing media components (including ExoPlayer components) implementation "androidx.media3:media3-test-utils:$media3_version" // Utilities for testing media components (including ExoPlayer components) via Robolectric implementation "androidx.media3:media3-test-utils-robolectric:$media3_version" // Common functionality for reading and writing media containers implementation "androidx.media3:media3-container:$media3_version" // Common functionality for media database components implementation "androidx.media3:media3-database:$media3_version" // Common functionality for media decoders implementation "androidx.media3:media3-decoder:$media3_version" // Common functionality for loading data implementation "androidx.media3:media3-datasource:$media3_version" // Common functionality used across multiple media libraries implementation "androidx.media3:media3-common:$media3_version" }
কোটলিন
dependencies { val media3_version = "1.4.1" // For media playback using ExoPlayer implementation("androidx.media3:media3-exoplayer:$media3_version") // For DASH playback support with ExoPlayer implementation("androidx.media3:media3-exoplayer-dash:$media3_version") // For HLS playback support with ExoPlayer implementation("androidx.media3:media3-exoplayer-hls:$media3_version") // For SmoothStreaming playback support with ExoPlayer implementation("androidx.media3:media3-exoplayer-smoothstreaming:$media3_version") // For RTSP playback support with ExoPlayer implementation("androidx.media3:media3-exoplayer-rtsp:$media3_version") // For MIDI playback support with ExoPlayer (see additional dependency requirements in // https://github.com/androidx/media/blob/release/libraries/decoder_midi/README.md) implementation("androidx.media3:media3-exoplayer-midi:$media3_version") // For ad insertion using the Interactive Media Ads SDK with ExoPlayer implementation("androidx.media3:media3-exoplayer-ima:$media3_version") // For loading data using the Cronet network stack implementation("androidx.media3:media3-datasource-cronet:$media3_version") // For loading data using the OkHttp network stack implementation("androidx.media3:media3-datasource-okhttp:$media3_version") // For loading data using librtmp implementation("androidx.media3:media3-datasource-rtmp:$media3_version") // For building media playback UIs implementation("androidx.media3:media3-ui:$media3_version") // For building media playback UIs for Android TV using the Jetpack Leanback library implementation("androidx.media3:media3-ui-leanback:$media3_version") // For exposing and controlling media sessions implementation("androidx.media3:media3-session:$media3_version") // For extracting data from media containers implementation("androidx.media3:media3-extractor:$media3_version") // For integrating with Cast implementation("androidx.media3:media3-cast:$media3_version") // For scheduling background operations using Jetpack Work's WorkManager with ExoPlayer implementation("androidx.media3:media3-exoplayer-workmanager:$media3_version") // For transforming media files implementation("androidx.media3:media3-transformer:$media3_version") // For applying effects on video frames implementation("androidx.media3:media3-effect:$media3_version") // For muxing media files implementation("androidx.media3:media3-muxer:$media3_version") // Utilities for testing media components (including ExoPlayer components) implementation("androidx.media3:media3-test-utils:$media3_version") // Utilities for testing media components (including ExoPlayer components) via Robolectric implementation("androidx.media3:media3-test-utils-robolectric:$media3_version") // Common functionality for reading and writing media containers implementation("androidx.media3:media3-container:$media3_version") // Common functionality for media database components implementation("androidx.media3:media3-database:$media3_version") // Common functionality for media decoders implementation("androidx.media3:media3-decoder:$media3_version") // Common functionality for loading data implementation("androidx.media3:media3-datasource:$media3_version") // Common functionality used across multiple media libraries implementation("androidx.media3:media3-common:$media3_version") }
নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, বিল্ড নির্ভরতা যুক্ত করুন দেখুন।
প্রতিক্রিয়া
আপনার প্রতিক্রিয়া জেটপ্যাককে আরও ভাল করতে সাহায্য করে। আপনি প্রশ্ন, পরিচিত সমস্যা এবং বৈশিষ্ট্য অনুরোধের উত্তর খুঁজতে এবং নতুন সমস্যা ফাইল করতে Media3 সমস্যা ট্র্যাকার ব্যবহার করতে পারেন।
সংস্করণ 1.4.0
সংস্করণ 1.4.0
25 জুলাই, 2024
androidx.media3:media3-*:1.4.0
প্রকাশিত হয়েছে। সংস্করণ 1.4.0- এ এই কমিট রয়েছে।
- সাধারণ গ্রন্থাগার:
- নো-অপ সিক কলগুলিকে উপেক্ষা করার পরিবর্তে সুরক্ষিত
BasePlayer.seekTo()
এবংSimpleBasePlayer.handleSeek()
পদ্ধতিতে ফরওয়ার্ড করুন। আপনি যদি একটি কাস্টম প্লেয়ারে এই পদ্ধতিগুলি প্রয়োগ করেন, তাহলে আপনাকেmediaItemIndex == C.INDEX_UNSET
এর সাথে এই অতিরিক্ত কলগুলি পরিচালনা করতে হতে পারে। - উন্নত জাভা 8 ডিসুগারিং ( #1312 ) এর উপর কম্পাইল নির্ভরতা সরান।
- নিশ্চিত করুন যে সময়কাল
MediaItem.Builder.setImageDurationMs()
এ পাস করা হয়েছে তা একটি নন-ইমেজMediaItem
জন্য উপেক্ষা করা হয়েছে (ডকুমেন্টেড হিসাবে)। -
Format
দৃষ্টান্ত সম্পর্কে অ্যাপ-প্রদত্ত কাস্টম তথ্য সঞ্চয় করতেFormat.customData
যোগ করুন।
- নো-অপ সিক কলগুলিকে উপেক্ষা করার পরিবর্তে সুরক্ষিত
- এক্সো প্লেয়ার:
-
BasePreloadManager
যোগ করুন যা তাদেরrankingData
দ্বারা সংজ্ঞায়িত অগ্রাধিকারের উপর ভিত্তি করে একাধিক উত্সের জন্য প্রিলোডিং সমন্বয় করে। কাস্টমাইজেশন এই ক্লাস প্রসারিত করা সম্ভব.DefaultPreloadManager
যোগ করুন যা মেমরিতে উত্সগুলির মিডিয়া নমুনাগুলিকে প্রিলোড করতেPreloadMediaSource
ব্যবহার করে এবং একটি পূর্ণসংখ্যাrankingData
ব্যবহার করে যা UI-তে একটি আইটেমের সূচক নির্দেশ করে৷ - একাধিক প্লেয়ারকে সমর্থন করার জন্য
LoadControl
বাস্তবায়ন সক্ষম করতেLoadControl
বেশিরভাগ পদ্ধতিতেPlayerId
যোগ করুন। -
Buffer.isDecodeOnly()
এবংC.BUFFER_FLAG_DECODE_ONLY
সরান। রেন্ডারার এবং ডিকোডাররা টাইমস্ট্যাম্পের উপর ভিত্তি করে বাফারগুলি এড়িয়ে যাওয়ার সিদ্ধান্ত নেবে বলে এই পতাকা সেট করার দরকার নেই৷ একটি নমুনা দেখানো হবে কিনা তা নির্ধারণ করতে কাস্টমRenderer
বাস্তবায়নের বাফার সময় অন্ততBaseRenderer.getLastResetPositionUs()
কিনা তা পরীক্ষা করা উচিত। কাস্টমSimpleDecoder
বাস্তবায়ন যদি প্রয়োজন হয় তাহলেisAtLeastOutputStartTimeUs()
চেক করতে পারে বা অন্য বাফারগুলিকে এড়িয়ে যেতেDecoderOutputBuffer.shouldBeSkipped
দিয়ে চিহ্নিত করতে পারে। -
TargetPreloadStatusControl.getTargetPreloadStatus(T)
দ্বারা একটি নাল মান ফেরত দেওয়ার অনুমতি দিন যাতে প্রদত্তrankingData
সাথে একটিMediaSource
প্রিলোড না করা যায়। -
BasePreloadManager
এremove(MediaSource)
যোগ করুন। - প্রিলোড ম্যানেজার ইনস্ট্যান্স রাখার সময় সমস্ত হোল্ডিং সোর্স প্রকাশ করতে
BasePreloadManager
এreset()
যোগ করুন। -
PriorityTaskManager
এবং API 35 থেকে MediaCodec গুরুত্বের জন্য ব্যবহৃত অগ্রাধিকার মান নির্ধারণ করতেExoPlayer.setPriority()
(এবংBuilder.setPriority()
) যোগ করুন। - CMCD ( #1124 ) তে ভুল
bs
(বাফার স্টারভেশন) কী এর ফলে শেষ রিবাফার টাইম আপডেট করার সমস্যার সমাধান করুন। - উৎসটি শেষ পর্যন্ত লোড হয়েছে তা বোঝাতে
PreloadMediaSource.PreloadControl.onLoadedToTheEndOfSource(PreloadMediaSource)
যোগ করুন। এটিDefaultPreloadManager
এবং কাস্টমPreloadMediaSource.PreloadControl
বাস্তবায়নকে পরবর্তী সোর্স প্রিলোড করতে বা অন্যান্য পদক্ষেপ নেওয়ার অনুমতি দেয়৷ - বাগ ঠিক করুন যেখানে আইটেমগুলির শেষে নীরবতা এড়িয়ে যাওয়া একটি প্লেব্যাক ব্যতিক্রম ট্রিগার করতে পারে৷
- প্রিলোডিং পিরিয়ড বাতিল করতে
PreloadMediaSource
এclear
যোগ করুন। - নতুন ত্রুটি কোড যোগ করুন
PlaybackException.ERROR_CODE_DECODING_RESOURCES_RECLAIMED
যেটি ব্যবহার করা হয় যখন কোডেক সংস্থানগুলি উচ্চ অগ্রাধিকারমূলক কাজের জন্য পুনরুদ্ধার করা হয়৷ - প্রাথমিক বিষয়বস্তু মিডিয়া প্রস্তুতি সম্পূর্ণ হওয়ার আগে
AdsMediaSource
প্রিরোল বিজ্ঞাপন লোড করতে দিন ( #1358 )। - মূল পিরিয়ডটি ইতিমধ্যেই ম্যানিফেস্ট থেকে মুছে ফেলার পরে একটি মাল্টি-পিরিয়ড DASH লাইভ স্ট্রিম পুনরায় প্রস্তুত করার সময় প্লেব্যাক
STATE_ENDED
এ সরানো হয়েছে এমন ত্রুটির সমাধান করুন৷ -
PreloadMediaSource.PreloadControl
এonTimelineRefreshed()
onSourcePrepared()
এবংonPrepared()
onTracksSelected()
এ পুনঃনামকরণ করুন। এছাড়াওDefaultPreloadManager.Stage
এ IntDef-এর নাম পরিবর্তন করুন। - CPU ওয়েক-সাইকেলের সাথে কাজকে আরও ভালোভাবে সারিবদ্ধ করতে এবং রেন্ডারাররা যখন অগ্রগতি করতে পারে তখন জেগে উঠতে বিলম্ব করতে ডায়নামিক শিডিউলিংয়ের জন্য পরীক্ষামূলক সমর্থন যোগ করুন। আপনার ExoPlayer দৃষ্টান্ত সেট আপ করার সময় আপনি
experimentalSetDynamicSchedulingEnabled()
ব্যবহার করে এটি সক্ষম করতে পারেন। -
Renderer.getDurationToProgressUs()
যোগ করুন। একজনRenderer
এক্সোপ্লেয়ারে ফিরে যাওয়ার জন্য এই পদ্ধতিটি প্রয়োগ করতে পারে যে সময়কাল রেন্ডারারের অগ্রগতির জন্য প্লেব্যাককে অগ্রসর হতে হবে। যদিExoPlayer
experimentalSetDynamicSchedulingEnabled()
দিয়ে সেট করা থাকে তাহলেExoPlayer
তার কাজের টাস্ক শিডিউল করার সময় গণনা করার সময় এই পদ্ধতিটিকে কল করবে। -
MediaCodecAdapter#OnBufferAvailableListener
যোগ করুন যখন ইনপুট এবং আউটপুট বাফারMediaCodecRenderer
দ্বারা ব্যবহারের জন্য উপলব্ধ থাকে তখন সতর্ক করতে। এই কলব্যাকগুলি পাওয়ার সময়MediaCodecRenderer
ExoPlayer
সংকেত দেবে এবংExoPlayer
experimentalSetDynamicSchedulingEnabled()
এর সাথে সেট করা থাকলে, রেন্ডারাররা অগ্রগতি করতে পারে বলেExoPlayer
তার কাজের লুপ নির্ধারণ করবে৷ - পৃথক প্যারামিটারের পরিবর্তে
LoadControl
পদ্ধতির জন্য ডেটা ক্লাস ব্যবহার করুন। -
Exoplayer.release()
কল করা হয়েছে কিনা তা পরীক্ষা করতেExoPlayer.isReleased()
যোগ করুন। -
ExoPlayer.Builder.setMaxSeekToPreviousPositionMs()
যোগ করুন সর্বোচ্চ অবস্থানটি কনফিগার করতে যার জন্যseekToPrevious()
পূর্ববর্তী আইটেমটি ( #1425 ) চায়। - কিছু অডিও ফোকাস অসঙ্গতি ঠিক করুন, যেমন প্লেয়ার পজ করার সময় সম্পূর্ণ বা ক্ষণস্থায়ী ফোকাস ক্ষতির রিপোর্ট না করা ( #1436 )।
- সম্ভাব্য
IndexOutOfBoundsException
ঠিক করুন এক্সট্রাক্টররা প্রাথমিক প্রস্তুতির ধাপের পরে অতিরিক্ত ট্র্যাক রিপোর্ট করার কারণে ( #1476 )। -
ExoPlayer.setVideoEffect()
এরEffects
রেন্ডারার অফসেট সরানো সহ টাইমস্ট্যাম্পগুলি পাবে ( #1098 )। - অন্য প্লেলিস্ট আইটেম ( #1483 ) এ পড়ার সময় প্লেয়ার ত্রুটি পরিচালনা করার সময় সম্ভাব্য
IllegalArgumentException
ঠিক করুন।
-
- ট্রান্সফরমার:
-
ExportResult
এaudioConversionProcess
এবংvideoConversionProcess
যোগ করুন আউটপুট ফাইলে সংশ্লিষ্ট ট্র্যাক কীভাবে তৈরি করা হয়েছে তা নির্দেশ করে। - শিথিল ট্রিম অপ্টিমাইজেশান H.264 স্তর চেক.
- একটি ক্রমানুসারে SDR এবং HDR ইনপুট মিডিয়ার মধ্যে পরিবর্তনের জন্য সমর্থন যোগ করুন।
- রচনা-স্তরের অডিও প্রভাবগুলির জন্য সমর্থন যোগ করুন।
- এইচডিআর ভিডিওতে আল্ট্রা এইচডিআর ছবি ট্রান্সকোড করার জন্য সমর্থন যোগ করুন।
- রিসেট এবং পুনঃব্যবহারের পরে
DefaultAudioMixer
সঠিক পরিমাণ বাইটের আউটপুট না করে এমন সমস্যাটি সমাধান করুন। - একটি ডিকোডার বাগ নিয়ে কাজ করুন যেখানে পিসিএম ইনপুট পরিচালনা করার সময় অডিও চ্যানেলের সংখ্যা স্টেরিওতে সীমাবদ্ধ ছিল।
-
ExoPlayerAssetLoader
এ ট্র্যাক নির্বাচন করার সময়, অডিও চ্যানেল গণনার সীমাবদ্ধতা উপেক্ষা করুন কারণ তারা শুধুমাত্র প্লেব্যাকের জন্য প্রযোজ্য। -
androidx.media3.transformer.Muxer
ইন্টারফেসandroidx.media3.muxer.Muxer
দিয়ে প্রতিস্থাপন করুন এবংandroidx.media3.transformer.Muxer
সরান। - কন্টেন্ট URI স্কিম থেকে HEIC ইমেজ লোডিং ঠিক করুন। ( #1373 )।
- AV সিঙ্ক উন্নত করতে
AudioGraphInput
এ অডিও ট্র্যাকের সময়কাল সামঞ্জস্য করুন। -
ExportResult.processedInputs
ক্ষেত্র সরান। আপনি যদি কোডেক বিবরণের জন্য এই ক্ষেত্রটি ব্যবহার করেন, তাহলে পরিবর্তেDefaultDecoderFactory.listener
ব্যবহার করুন। কোডেক ব্যতিক্রমের ক্ষেত্রে, কোডেক বিবরণExportException.codecInfo
তে পাওয়া যাবে।
-
- নিষ্কাশনকারী:
- MPEG-TS: নমুনা সারিতে একটি স্ট্রীমের শেষ অ্যাক্সেস ইউনিট পাস করে শেষ ফ্রেমটি রেন্ডার করা হয়েছে তা নিশ্চিত করে পরিবর্তনটি এগিয়ে দিন ( #7909 )। শুধুমাত্র I-ফ্রেমে যে সমস্যাগুলি উদ্ভূত হয়েছে সেগুলি সমাধানের জন্য অন্তর্ভুক্ত করা হচ্ছে HLS স্ট্রীম ( #1150 ) এবং H.262 HLS স্ট্রীম ( #1126 )৷
- MP3: অন্তর্নিহিত স্ট্রীম (যেমন ফাইলের আকার, বা HTTP
Content-Length
শিরোনাম) দ্বারা রিপোর্ট করা আকারের চেয়ে একটিInfo
ফ্রেম থেকে ডেটা আকার পছন্দ করুন। এটি ধ্রুবক বিটরেট চাওয়ার গণনা থেকে অ-প্লেযোগ্য ট্রেলার ডেটা (যেমন অ্যালবাম আর্টওয়ার্ক) বাদ দিতে সাহায্য করে, অনুসন্ধানগুলিকে আরও সঠিক করে তোলে ( #1376 )। - MP3:
Info
ফ্রেমে ফ্রেম গণনা এবং অন্যান্য ডেটা ব্যবহার করুন (যদি উপস্থিত থাকে)Info
ফ্রেমের পরে ফ্রেমের বিটরেট থেকে এক্সট্রাপোলেট করার পরিবর্তে একটি গড় বিটরেট গণনা করতে একটি ইনফো ফ্রেমের (যদি থাকে) ব্যবহার করুন, যেমনPCUT
ফ্রেম ( #1376 )। - AVI পাত্রে PCM অডিও ফরম্যাট নিষ্কাশন ঠিক করুন।
- শ্রুতি:
- ডিটিএস ফিক্স করুন: পাসথ্রু প্লেব্যাকের জন্য এক্স প্রোফাইল 2 এনকোডিং বৈশিষ্ট্য ( #1299 )।
- অফলোড করা প্লেব্যাকের জন্য,
AudioTrack.stop()
কল করার আগেDefaultAudioSink
এ স্ট্রীম সমাপ্তির জন্য ট্র্যাকিং ফিল্ড রিসেট করুন যাতেAudioTrack.StreamEventCallback#onPresentationEnded
সঠিকভাবে সনাক্ত করতে পারে যখন সমস্ত মুলতুবি ডেটা চালানো হয়েছে৷ -
SilenceSkippingAudioProcessor
এ বাগ ফিক্স করুন যেখানে বিভিন্ন অডিও ফরম্যাটের মধ্যে পরিবর্তন (উদাহরণস্বরূপ স্টেরিও থেকে মনো) প্রসেসরকে ব্যতিক্রম ঘটাতে পারে ( #1352 )। -
MediaCodecAudioRenderer.getDurationToProgressUs()
প্রয়োগ করুন যাতে ExoPlayer গতিশীলভাবে তার প্রধান কাজের লুপ নির্ধারণ করে কখন MediaCodecAudioRenderer অগ্রগতি করতে পারে।
- ভিডিও:
- মাঝামাঝি প্লেব্যাকের সারফেস স্যুইচ করার সময় যেখানে
Listener.onRenderedFirstFrame()
খুব তাড়াতাড়ি আসে সেই সমস্যার সমাধান করুন। - প্রয়োজনে একটি সামঞ্জস্যপূর্ণ AV1 ডিকোডার ব্যবহার করতে ডলবি ভিশনের জন্য ডিকোডার ফলব্যাক লজিক ঠিক করুন ( #1389 )।
- একটি ভিডিও রেন্ডারার মিড-প্লেব্যাক সক্ষম করার কারণে হতে পারে এমন কোডেক ব্যতিক্রমের সমাধান করুন৷
- মাঝামাঝি প্লেব্যাকের সারফেস স্যুইচ করার সময় যেখানে
- পাঠ্য:
- একটি অনুসন্ধান অবস্থানের আগে শুরু হওয়া সাবটাইটেলগুলি এড়িয়ে যাওয়ার সমস্যাটি ঠিক করুন৷ এই সমস্যাটি শুধুমাত্র Media3 1.4.0-alpha01-এ চালু করা হয়েছে।
- ডিফল্ট সাবটাইটেল পার্সিং আচরণ পরিবর্তন করুন যাতে এটি রেন্ডারিংয়ের পরিবর্তে নিষ্কাশনের সময় ঘটে ( এক্সোপ্লেয়ারের আর্কিটেকচার ডায়াগ্রামটি নিষ্কাশন এবং রেন্ডারিংয়ের মধ্যে পার্থক্যের জন্য দেখুন)।
-
MediaSource.Factory.experimentalParseSubtitlesDuringExtraction(false)
এবংTextRenderer.experimentalSetLegacyDecodingEnabled(true)
উভয় কল করে এই পরিবর্তনটি ওভাররাইড করা যেতে পারে। একটিExoPlayer
উদাহরণে এই উপাদানগুলিকে কীভাবে প্লাম্ব করা যায় তার জন্য কাস্টমাইজেশনের ডক্স দেখুন। এই পদ্ধতিগুলি (এবং লিগ্যাসি সাবটাইটেল ডিকোডিংয়ের জন্য সমস্ত সমর্থন) ভবিষ্যতের রিলিজে সরিয়ে দেওয়া হবে। - কাস্টম
SubtitleDecoder
বাস্তবায়ন সহ অ্যাপগুলিকেSubtitleParser
(এবংSubtitleParser.Factory
এর পরিবর্তেSubtitleDecoderFactory
) বাস্তবায়ন করতে তাদের আপডেট করতে হবে।
-
- PGS: আক্ষরিক রঙের মান ( #1367 ) এর পরিবর্তে, একটি রঙ সূচক হিসাবে
0
সমাধান করতে রান-দৈর্ঘ্য ডিকোডিং ঠিক করুন। - CEA-708:
rowLock
মান উপেক্ষা করুন। CEA-708-E S-2023 স্পেক বলে যেrowLock
এবংcolumnLock
উভয়কেই সত্য বলে ধরে নেওয়া উচিত, স্ট্রীমে উপস্থিত মান নির্বিশেষে (columnLock
সমর্থন বাস্তবায়িত হয় না, তাই এটি কার্যকরভাবে সর্বদা মিথ্যা বলে ধরে নেওয়া হয়)।- এটি মূলত
1.3.0-alpha01
রিলিজ নোটে অন্তর্ভুক্ত ছিল, কিন্তু পরিবর্তনটি ভুলবশত1.3.0-rc01
রিলিজের আগে ফিরিয়ে দেওয়া হয়েছিল। এটি এখন স্থির করা হয়েছে, তাই পরিবর্তনটি আবার বর্তমান।
- এটি মূলত
- CEA-708: ExoPlayer-এর 'সেট পেন লোকেশন' কমান্ড ( #1315 ) এর নিষ্পাপ হ্যান্ডলিং দ্বারা ডুপ্লিকেট নতুন লাইন যোগ করা এড়িয়ে চলুন।
-
LegacySubtitleUtil
থেকে একটিIllegalArgumentException
ঠিক করুন যখন WebVTT সাবটাইটেল নমুনায় কোন চিহ্ন থাকে না, যেমন একটি DASH স্ট্রীমের অংশ হিসাবে ( #1516 )।
- মেটাডেটা:
- ID3 সাজানোর ট্যাগ থেকে MP4 এর ম্যাপিং ঠিক করুন। পূর্বে 'অ্যালবাম সর্ট' (
soal
), 'শিল্পী সাজানো' (soar
) এবং 'অ্যালবাম আর্টিস্ট সর্ট' (soaa
) MP4 ট্যাগগুলিTSO2
,TSOA
এবংTSOP
ID3 ট্যাগে ( #1302 ) ভুলভাবে ম্যাপ করা হয়েছিল৷ - মান এক বাইটের বেশি হলে MP4 (/iTunes) নিউমেরিক
gnre
(genre) এবংtmpo
(টেম্পো) ট্যাগের রিডিং ঠিক করুন। - ID3
TCON
ফ্রেমMediaMetadata.genre
( #1305 ) এ প্রচার করুন।
- ID3 সাজানোর ট্যাগ থেকে MP4 এর ম্যাপিং ঠিক করুন। পূর্বে 'অ্যালবাম সর্ট' (
- ছবি:
- নন-স্কোয়ার ড্যাশ থাম্বনেইল গ্রিডের জন্য সমর্থন যোগ করুন ( #1300 )।
- API 34+ এর জন্য AVIF এর জন্য সমর্থন যোগ করুন।
- পূর্বে সেট করা
ImageOutput
সাফ করার জন্যExoPlayer.setImageOutput()
এর প্যারামিটার হিসাবেnull
অনুমতি দিন।
- তথ্য সূত্র:
-
android.resource://package/id
raw resource URI-এর জন্য সমর্থন প্রয়োগ করুন যেখানেpackage
বর্তমান অ্যাপ্লিকেশনের প্যাকেজের থেকে আলাদা। এটি কাজ করার জন্য পূর্বে নথিভুক্ত করা হয়নি, তবে নামের তুলনায় অন্য প্যাকেজে সংস্থান অ্যাক্সেস করার আরও কার্যকর উপায়। -
DataSpec
কনস্ট্রাক্টরগুলিতেurl
অ-শূন্য আছে তা আগ্রহের সাথে চেক করুন। এই প্যারামিটারটি ইতিমধ্যেই নন-নাল বলে টীকা করা হয়েছে। -
ByteArrayDataSource
নির্মাণের সময় হার্ড-কোড করার পরিবর্তেopen()
চলাকালীন একটি বাইট অ্যারেতে একটি URI সমাধান করার অনুমতি দিন ( #1405 )।
-
- DRM:
-
DefaultDrmSessionManagerProvider
( #1271 ) এ একটিLoadErrorHandlingPolicy
সেট করার অনুমতি দিন।
-
- প্রভাব:
-
SpeedChangeEffect
এ একইEditedMediaItem
বাComposition
মধ্যে একাধিক গতি পরিবর্তন সমর্থন করুন। - আল্ট্রা এইচডিআর বিটম্যাপ ইনপুট থেকে HLG এবং PQ আউটপুটের জন্য সমর্থন।
- EGL_GL_COLORSPACE_BT2020_HLG_EXT এর জন্য সমর্থন যোগ করুন, যা ExoPlayer.setVideoEffect এবং ট্রান্সফরমারের ডিবাগ সারফেসভিউতে HLG পৃষ্ঠের আউটপুট উন্নত করে।
-
setOverlayFrameAnchor()
এ প্রয়োগ করা x এবং y মানগুলি ফ্লিপ করে ডকুমেন্টেশনের সাথে সামঞ্জস্যপূর্ণ করতে ওভারলে ম্যাট্রিক্স বাস্তবায়ন আপডেট করুন।OverlaySettings.Builder.setOverlayFrameAnchor()
ব্যবহার করলে, তাদের x এবং y মানগুলিকে-1
দ্বারা গুণ করে ফ্লিপ করুন। -
ExoPlayer#setVideoEffects
( #821 ) এর সাথে ব্যবহার করার সময় যেখানেTimestampWrapper
ক্র্যাশ হয় সেখানে বাগ ঠিক করুন। - ডিফল্ট SDR রঙের কাজের স্থানকে রৈখিক রং থেকে বৈদ্যুতিক BT 709 SDR ভিডিওতে পরিবর্তন করুন। এছাড়াও মূল রঙের স্থান ধরে রাখতে তৃতীয় বিকল্প প্রদান করুন।
- EditedMediaItemSequences ( #1055 ) এর অনির্দিষ্ট z-ক্রম সংজ্ঞায়িত করার অনুমতি দিন।
- HDR বিষয়বস্তুর বিভিন্ন অংশ জুড়ে একটি সামঞ্জস্যপূর্ণ আলোক পরিসর বজায় রাখুন (HLG পরিসর ব্যবহার করে)।
- HDR সামগ্রীতে আল্ট্রা এইচডিআর (বিটম্যাপ) ওভারলেগুলির জন্য সমর্থন যোগ করুন।
- API 26 এর আগে
SeparableConvolution
প্রভাবগুলি ব্যবহার করার অনুমতি দিন। - অব্যবহৃত
OverlaySettings.useHdr
সরান যেহেতু ওভারলে এবং ফ্রেমের গতিশীল পরিসর অবশ্যই মিলবে। -
TextOverlay
এর জন্য HDR সমর্থন যোগ করুন। টেক্সট ওভারলে এর উজ্জ্বলতাOverlaySettings.Builder.setHdrLuminanceMultiplier()
দিয়ে সামঞ্জস্য করা যেতে পারে।
-
- আইএমএ এক্সটেনশন:
- স্থিতিশীল করার জন্য DAI বিজ্ঞাপন স্ট্রীম চালানোর জন্য অ্যাপগুলির জন্য প্রয়োজনীয় API-কে প্রচার করুন।
-
ImaServerSideAdInsertionMediaSource.AdLoader
এreplaceAdTagParameters(Map <String, String>)
যোগ করুন যা রানটাইমে বিজ্ঞাপন ট্যাগ প্যারামিটার প্রতিস্থাপন করতে দেয়। - যেখানে
VideoAdPlayer.VideoAdPlayerCallback.onError()
বলা হয়নি যেখানে বিজ্ঞাপন প্লেব্যাকের সময় প্লেয়ারের ত্রুটি ঘটেছে ( #1334 ) বাগটি ঠিক করুন৷ -
data://
বিজ্ঞাপন ট্যাগ URIs ( #700 ) ব্যবহার করার সময় একটিNullPointerException
ঠিক করতে IMA SDK সংস্করণকে 3.33.0 এ বাম্প করুন৷
- সেশন:
-
CommandButton.enabled
এর ডিফল্টtrue
পরিবর্তন করুন এবং নিশ্চিত করুন যে মানটি কন্ট্রোলারের জন্য মিথ্যা থাকতে পারে এমনকি যদি সংশ্লিষ্ট কমান্ড উপলব্ধ থাকে। -
CommandButton
এর জন্য আইকন ধ্রুবক যোগ করুন যা কাস্টম আইকন সম্পদের পরিবর্তে ব্যবহার করা উচিত। -
onTaskRemoved()
( #1219 ) এ পরিষেবাটি বন্ধ করা দরকার কিনা তা অ্যাপগুলিকে জিজ্ঞাসা করতেMediaSessionService.isPlaybackOngoing()
যোগ করুন। -
MediaSessionService.pauseAllPlayersAndStopSelf()
যোগ করুন যা সুবিধাজনকভাবে সমস্ত সেশনের প্লেব্যাককে বিরতি দিতে এবংMediaSessionService
এর জীবনচক্র বন্ধ করতেstopSelf()
কল করার অনুমতি দেয়৷ - একটি নিরাপদ ডিফল্ট বাস্তবায়ন প্রদান করতে
MediaSessionService.onTaskRemoved(Intent)
ওভাররাইড করুন যা প্লেব্যাক চলমান থাকলে বা অন্যথায় পরিষেবাটি বন্ধ করে দিলে অগ্রভাগে পরিষেবা চালু রাখে। - প্ল্যাটফর্ম সেশন মেটাডেটা ( #1256 ) এ সময়কাল সেট না করে লাইভ স্ট্রিমের জন্য মিডিয়া বিজ্ঞপ্তিতে সিকবার লুকান।
- Media1 এর মতো মেটাডেটা বৈশিষ্ট্য নির্বাচন করার সময় একই পছন্দের ক্রম এবং যুক্তি ব্যবহার করার জন্য
MediaMetadata
এরMediaDescriptionCompat
এ রূপান্তর সারিবদ্ধ করুন। -
MediaSession.sendError()
যোগ করুন যা Media3 কন্ট্রোলারে অ-মারাত্মক ত্রুটি পাঠানোর অনুমতি দেয়। নোটিফিকেশন কন্ট্রোলার ব্যবহার করার সময় (দেখুনMediaSession.getMediaNotificationControllerInfo()
), প্রদত্ত ত্রুটি তথ্য ( #543 ) সহ প্ল্যাটফর্ম সেশনেরPlaybackState
একটি ত্রুটির অবস্থায় আপডেট করতে কাস্টম ত্রুটি ব্যবহার করা হয়। - একটি নির্দিষ্ট কন্ট্রোলার থেকে প্লেয়ার ইন্টারঅ্যাকশনের একটি সিরিজ শেষ হলে সেশনগুলি জানাতে
MediaSession.Callback.onPlayerInteractionFinished()
যোগ করুন। -
SessionError
যোগ করুন এবং ত্রুটি সম্পর্কে আরও তথ্য প্রদান করতে এবং সম্ভব হলে ত্রুটিটি কীভাবে সমাধান করা যায় সে সম্পর্কে ত্রুটি কোডের পরিবর্তে এটিSessionResult
এবংLibraryResult
এ ব্যবহার করুন। - মিডিয়া 3 কন্ট্রোলার টেস্ট অ্যাপের জন্য কোডটি প্রকাশ করুন যা একটি মিডিয়া সেশন প্রকাশকারী অ্যাপগুলির সাথে ইন্টারঅ্যাকশন পরীক্ষা করতে ব্যবহার করা যেতে পারে।
- মিডিয়া3-এর
MediaSession[Builder].setSessionExtras()
এ একটি media1 কন্ট্রোলারেরPlaybackStateCompat.getExtras()
এ পাস করা অতিরিক্তগুলি প্রচার করুন। - প্ল্যাটফর্ম সেশনে এবং থেকে মারাত্মক এবং অ-মারাত্মক ত্রুটি ম্যাপ করুন। একটি
PlaybackException
PlaybackStateCompat
একটি মারাত্মক ত্রুটি অবস্থায় ম্যাপ করা হয়েছে।MediaSession.sendError(ControllerInfo, SessionError)
সহ মিডিয়া নোটিফিকেশন কন্ট্রোলারে পাঠানো একটিSessionError
PlaybackStateCompat
কম্প্যাটে একটি অ-মারাত্মক ত্রুটির সাথে ম্যাপ করা হয়েছে যার অর্থ ত্রুটি কোড এবং বার্তা সেট করা আছে কিন্তু প্ল্যাটফর্ম সেশনের অবস্থাSTATE_ERROR
এর থেকে আলাদা থাকে। - গ্লোবাল সেশন অ্যাক্টিভিটি ওভাররাইড করতে সেশন অ্যাক্টিভিটি প্রতি কন্ট্রোলার সেট করার অনুমতি দিন।
AcceptedResultBuilder.setSessionActivivty(PendingIntent)
এর সাথে একটিConnectionResult
তৈরি করে সংযোগের সময় একটি নিয়ামকের জন্য অধিবেশন কার্যকলাপ সংজ্ঞায়িত করা যেতে পারে। একবার সংযুক্ত হলে, সেশন কার্যকলাপMediaSession.setSessionActivity(ControllerInfo, PendingIntent)
এর সাথে আপডেট করা যেতে পারে। -
MediaLibrarySession.Callback
এ কলের ত্রুটির প্রতিলিপি উন্নত করুন। ত্রুটির প্রতিলিপি এখনMediaLibrarySession.Builder.setLibraryErrorReplicationMode()
ব্যবহার করে ত্রুটির ধরন বেছে নেওয়ার জন্য বা ডিফল্টরূপে চালু থাকা ত্রুটির প্রতিলিপি থেকে অপ্ট-আউট করার মাধ্যমে কনফিগার করা যেতে পারে।
-
- UI:
- একটি
ExoPlayer
( #1144 ) এর সাথে সংযুক্ত থাকাকালীনPlayerView
এ চিত্র প্রদর্শন সমর্থন যোগ করুন। -
PlayerControlView
বিভিন্ন আইকনের কাস্টমাইজেশন যোগ করুন xml অ্যাট্রিবিউটের মাধ্যমেPlayerView
ইন্সট্যান্স প্রতি বিভিন্ন অঙ্কনযোগ্য করার জন্য, গ্লোবাল ওভাররাইডের পরিবর্তে ( #1200 )। - API 34 ( #1237 ) এ কম্পোজ
AndroidView
ভিতরেSurfaceView
ব্যবহার করার সময় প্রসারিত/ক্রপ করা ভিডিও তৈরি করে এমন একটি প্ল্যাটফর্ম বাগ নিয়ে কাজ করুন।
- একটি
- ডাউনলোড:
- নিশ্চিত করুন যে
DownloadHelper
অপ্রকাশিতRenderer
দৃষ্টান্ত ফাঁস করে না, যার ফলে অবশেষেIllegalStateException: Too many receivers, total of 1000, registered for pid
( #1224 ) এর জন্য নিবন্ধিত।
- নিশ্চিত করুন যে
- ক্রোনেট এক্সটেনশন:
-
CronetDataSource
এSocketTimeoutException
ঠিক করুন। Cronet এর কিছু সংস্করণে, কলব্যাক দ্বারা প্রদত্ত অনুরোধ সবসময় একই রকম হয় না। এর ফলে কলব্যাক সম্পূর্ণ হয় না এবং টাইমিং আউটের অনুরোধ করে (https://issuetracker.google.com/328442628)।
-
- HLS এক্সটেনশন:
- বাগটি ঠিক করুন যেখানে মুলতুবি থাকা EMSG নমুনাগুলি একটি বিচ্ছিন্নতার জন্য অপেক্ষা করা হয়েছে
HlsSampleStreamWrapper
এ একটি ভুল অফসেট সহ একটিIndexOutOfBoundsException
বা একটিIllegalArgumentException
( #1002 ) সৃষ্টি করে। - যেখানে অ-প্রাথমিক প্লেলিস্টগুলি LL-HLS স্ট্রিমগুলির জন্য পুনরায় লোড হতে থাকে সেখানে বাগ ঠিক করুন ( #1240 )৷
- বাগ ফিক্স করুন যেখানে HLS-এর জন্য CMCD সক্রিয় করার ফলে
Source Error
এবংIllegalArgumentException
হয়েছে। - লাইভ প্লেব্যাকের সময় যেখানে নন-প্রাথমিক প্লেলিস্টগুলি রিফ্রেশ হয় না সেখানে বাগ ঠিক করুন ( #1240 )।
- HLS লাইভ স্ট্রিমগুলির জন্য CMCD সক্ষম করার ফলে
ArrayIndexOutOfBoundsException
( #1395 ) হয় যেখানে বাগ ঠিক করুন৷
- বাগটি ঠিক করুন যেখানে মুলতুবি থাকা EMSG নমুনাগুলি একটি বিচ্ছিন্নতার জন্য অপেক্ষা করা হয়েছে
- ড্যাশ এক্সটেনশন:
- কাস্ট এক্সটেনশন:
-
MediaQueueItem
এর অ্যালবাম শিরোনামটিকে Media3 মিডিয়া আইটেম ( #1255 ) এ শিল্পীর কাছে রূপান্তরিত করা বাগ সংশোধন করুন।
-
- পরীক্ষা উপযোগিতা:
-
FakeRenderer
এonInit()
এবংonRelease()
প্রয়োগ করুন। - অপ্রত্যাশিত ত্রুটিগুলি ব্যর্থ করতে
TestPlayerRunHelper.runUntil()/playUntil()
পদ্ধতিগুলি পরিবর্তন করুন (যেমন যেগুলিAnalyticsListener.onVideoCodecError()
এ রিপোর্ট করা হয়েছে)৷ এই আচরণটি নিষ্ক্রিয় করতে নতুনTestPlayerRunHelper.run(player).ignoringNonFatalErrors().untilXXX()
পদ্ধতি চেইন ব্যবহার করুন৷
-
- ডেমো অ্যাপ:
- সংক্ষিপ্ত ফর্ম ডেমো অ্যাপে
DefaultPreloadManager
ব্যবহার করুন। - কমান্ড লাইন ( #1266 ) থেকে
Intent
আর্গুমেন্ট সহ পুনরাবৃত্তি মোড সেট করার অনুমতি দিন। - ডিভাইস দ্বারা সমর্থিত হলে
HttpEngineDataSource
HttpDataSource
হিসাবে ব্যবহার করুন৷
- সংক্ষিপ্ত ফর্ম ডেমো অ্যাপে
- অপ্রচলিত চিহ্নগুলি সরান:
-
CronetDataSourceFactory
সরান। পরিবর্তেCronetDataSource.Factory
ব্যবহার করুন। - কিছু
DataSpec
কনস্ট্রাক্টর সরান। পরিবর্তেDataSpec.Builder
ব্যবহার করুন। -
DefaultHttpDataSource
,OkHttpDataSource
এবংCronetDataSource
থেকেsetContentTypePredicate(Predicate)
পদ্ধতি সরান। পরিবর্তে প্রতিটিXXXDataSource.Factory
এ সমতুল্য পদ্ধতি ব্যবহার করুন। -
OkHttpDataSource
কনস্ট্রাক্টর এবংOkHttpDataSourceFactory
সরান। পরিবর্তেOkHttpDataSource.Factory
ব্যবহার করুন। -
PlayerMessage.setHandler(Handler)
সরান। পরিবর্তেsetLooper(Looper)
ব্যবহার করুন। -
Timeline.Window.isLive
ক্ষেত্র সরান। পরিবর্তেisLive()
পদ্ধতি ব্যবহার করুন। -
DefaultHttpDataSource
কনস্ট্রাক্টর সরান। পরিবর্তেDefaultHttpDataSource.Factory
ব্যবহার করুন। -
DashMediaSource.DEFAULT_LIVE_PRESENTATION_DELAY_MS
সরান। পরিবর্তেDashMediaSource.DEFAULT_FALLBACK_TARGET_LIVE_OFFSET_MS
ব্যবহার করুন। -
MediaCodecInfo.isSeamlessAdaptationSupported(Format, Format, boolean)
সরান। পরিবর্তেMediaCodecInfo.canReuseCodec(Format, Format)
ব্যবহার করুন। -
DrmSessionManager.DUMMY
এবংgetDummyDrmSessionManager()
পদ্ধতি সরান। পরিবর্তেDrmSessionManager.DRM_UNSUPPORTED
ব্যবহার করুন। -
AnalyticsListener.onAudioInputFormatChanged(EventTime, Format)
,AnalyticsListener.onVideoInputFormatChanged(EventTime, Format)
,AudioRendererEventListener.onAudioInputFormatChanged(Format)
,VideoRendererEventListener.onVideoInputFormatChanged(Format)
। পরিবর্তে একটিDecoderReuseEvaluation
নিতে ওভারলোড ব্যবহার করুন. -
RendererSupport.FormatSupport
IntDef এবংFORMAT_HANDLED
,FORMAT_EXCEEDS_CAPABILITIES
,FORMAT_UNSUPPORTED_DRM
,FORMAT_UNSUPPORTED_SUBTYPE
,FORMAT_UNSUPPORTED_TYPE
কনস্ট্যান্টগুলি সরান৷ পরিবর্তেandroidx.media3.common.C
তে সমতুল্য IntDef এবং ধ্রুবক ব্যবহার করুন (যেমনC.FORMAT_HANDLED
)। -
Bundleable
ইন্টারফেস সরান. এর মধ্যে রয়েছে সমস্তBundleable.Creator<Foo> CREATOR
ধ্রুবক ক্ষেত্রগুলি সরানো৷ কলারের পরিবর্তে প্রতিটি প্রকারের জন্যBundle toBundle()
এবংstatic Foo fromBundle(Bundle)
পদ্ধতি ব্যবহার করা উচিত।
-
সংস্করণ 1.4.0-rc01
10 জুলাই, 2024
1.4.0 স্থিতিশীল সংস্করণ ব্যবহার করুন।
সংস্করণ 1.4.0-beta01
জুন 26, 2024
1.4.0 স্থিতিশীল সংস্করণ ব্যবহার করুন।
সংস্করণ 1.4.0-alpha02
জুন 07, 2024
1.4.0 স্থিতিশীল সংস্করণ ব্যবহার করুন।
সংস্করণ 1.4.0-alpha01
এপ্রিল 17, 2024
1.4.0 স্থিতিশীল সংস্করণ ব্যবহার করুন।
সংস্করণ 1.3.0
সংস্করণ 1.3.1
11 এপ্রিল, 2024
androidx.media3:media3-*:1.3.1
প্রকাশিত হয়েছে। সংস্করণ 1.3.1- এ এই কমিটগুলি রয়েছে।
- সাধারণ গ্রন্থাগার:
- স্থানীয় বা অন্য বিকল্প লেবেলগুলিকে অনুমতি দিতে
Format.labels
যোগ করুন।
- স্থানীয় বা অন্য বিকল্প লেবেলগুলিকে অনুমতি দিতে
- এক্সো প্লেয়ার:
-
PreloadMediaPeriod
স্ট্রীমগুলিকে আবার প্রিলোড করার সময় ধরে রাখতে পারে না এমন সমস্যার সমাধান করুন। - ট্র্যাক পুনঃনির্বাচনের সময় প্লেয়িং পিরিয়ডে সঠিক সংশ্লিষ্ট
TrackSelectionResult
প্রয়োগ করুন। - মিডিয়া আইটেম ( #1017 ) এর মধ্যে স্থানান্তর করার সময় প্লেয়িং পিরিয়ড অগ্রসর হওয়ার পরেই প্রারম্ভিক-সক্ষম রেন্ডারার শুরু করুন।
-
DefaultVideoFrameProcessor.Factory.Builder.build()
( #1187 ) এর জন্য proguard-keepclasseswithmembers
নিয়মে অনুপস্থিত রিটার্ন টাইপ যোগ করুন।
-
- ট্রান্সফরমার:
- API 30 এর আগে
MediaMuxer
নেতিবাচক উপস্থাপনা টাইমস্ট্যাম্প সমর্থন না করার কারণে নিক্ষিপ্ত ব্যতিক্রমের জন্য সমাধান যোগ করুন।
- API 30 এর আগে
- ট্র্যাক নির্বাচন:
-
DefaultTrackSelector
: কম বা সেট না করা ফ্রেম রেটগুলির তুলনায় 'যুক্তিসঙ্গত' ফ্রেম রেট (>=10fps) সহ ভিডিও ট্র্যাকগুলিকে পছন্দ করুন৷ এটি নিশ্চিত করে যে প্লেয়ারটি মোশন ফটোগুলি থেকে বের করা MP4-এ 'আসল' ভিডিও ট্র্যাক নির্বাচন করে যাতে দুটি HEVC ট্র্যাক থাকতে পারে যেখানে একটির রেজোলিউশন বেশি কিন্তু খুব কম সংখ্যক ফ্রেম ( #1051 )।
-
- নিষ্কাশনকারী:
- WAV ফাইল ( #1117 ) থেকে বিজোড়-আকারের খণ্ড পড়ার সময় যেখানে প্যাডিং বাদ দেওয়া হয়নি সেই সমস্যাটি ঠিক করুন।
- MP3: মেটাডেটা ফ্রেম যেমন
XING
এবংVBRI
থেকেFormat.averageBitrate
পপুলেট করুন। - MPEG-TS: একটি পরিবর্তন প্রত্যাবর্তন করুন যার লক্ষ্য শেষ ফ্রেমটি নিশ্চিত করার লক্ষ্যে একটি স্ট্রীমের শেষ অ্যাক্সেস ইউনিটকে নমুনা সারিতে পাস করে ( #7909 )। এটি শুধুমাত্র আই-ফ্রেমের HLS স্ট্রীম ( #1150 ) এবং H.262 HLS স্ট্রীম ( #1126 ) এর সাথে নতুন সমস্যা সৃষ্টি করার কারণে এই পরিবর্তন হয়েছে।
- শ্রুতি:
- অডিও ট্র্যাক অফলোড মোডে আরম্ভ করতে ব্যর্থ হলে অফলোড অক্ষম করে রেন্ডারার পুনরুদ্ধারের অনুমতি দিন।
- ভিডিও:
- Galaxy Tab S7 FE, Google TV এর সাথে Chromecast এবং Lenovo M10 FHD Plus-এ ডিভাইসের সমস্যার সমাধান যোগ করুন যার ফলে 60fps H265 স্ট্রীম অসমর্থিত হিসাবে চিহ্নিত করা হয়
- এপিআই ( #1169 ) এর প্রয়োজন অনুযায়ী ডিভাইসটি স্বয়ংক্রিয়ভাবে এটি না করলেও টানেলিং করার সময় প্রথম ফ্রেমটি সর্বদা রেন্ডার করা নিশ্চিত করে এমন সমাধান যোগ করুন। ( #966 )।
- HDR কালার ইনফো হ্যান্ডলিং কোডেক খারাপ আচরণের কারণ হয় এবং SDR ভিডিও ট্র্যাকের জন্য অভিযোজিত ফর্ম্যাট সুইচ প্রতিরোধ করে এমন সমস্যাটি সমাধান করুন ( #1158 )।
- পাঠ্য:
- WebVTT:
WebvttParser.parse
( #1177 ) থেকে বানোয়াট অতিরিক্তCuesWithTiming
দৃষ্টান্ত তৈরি করা থেকে সরাসরি ধারাবাহিক সংকেতগুলিকে আটকান।
- WebVTT:
- DRM:
- একটি
NoSuchMethodError
নিয়ে কাজ করুন যা কিছু Android 14 ডিভাইসেResourceBusyException
বাNotProvisionedException
এর পরিবর্তেMediaDrm
ফ্রেমওয়ার্ক দ্বারা নিক্ষেপ করা যেতে পারে ( #1145 )।
- একটি
- প্রভাব:
- রঙের স্থানগুলিকে রূপান্তর করে PQ থেকে SDR টোন-ম্যাপিং উন্নত করা হয়েছে।
- সেশন:
- UI:
- অডিও ট্র্যাক ভাষার নাম অন্তর্ভুক্ত করতে ফলব্যাক যদি
Locale
একটি প্রদর্শন নাম সনাক্ত করতে না পারে ( #988 )।
- অডিও ট্র্যাক ভাষার নাম অন্তর্ভুক্ত করতে ফলব্যাক যদি
- ড্যাশ এক্সটেনশন:
- ম্যানিফেস্ট থেকে
Format.labels
( #1054 ) এ সমস্তLabel
উপাদান পূরণ করুন।
- ম্যানিফেস্ট থেকে
- RTSP এক্সটেনশন:
- SDP পার্সিং ( #1087 ) এ খালি সেশন তথ্য মান (আই-ট্যাগ) এড়িয়ে যান।
- ডিকোডার এক্সটেনশন (FFmpeg, VP9, AV1, MIDI, ইত্যাদি):
- স্থানীয় নির্ভরতা হিসাবে MIDI এক্সটেনশনটিকে ডিফল্টরূপে অক্ষম করুন কারণ এটি কনফিগার করার জন্য একটি অতিরিক্ত Maven সংগ্রহস্থলের প্রয়োজন৷ স্থানীয় নির্ভরতা থেকে এই মডিউলটি প্রয়োজন এমন ব্যবহারকারীরা এটিকে পুনরায় সক্ষম করতে পারেন ৷
সংস্করণ 1.3.0
6 মার্চ, 2024
androidx.media3:media3-*:1.3.0
প্রকাশিত হয়েছে। সংস্করণ 1.3.0- এ এই কমিট রয়েছে।
- সাধারণ গ্রন্থাগার:
-
android.resource://package/[type/]name
raw রিসোর্স URI-এর জন্য সমর্থন প্রয়োগ করুন যেখানেpackage
বর্তমান অ্যাপ্লিকেশনের প্যাকেজ থেকে আলাদা। এটি সর্বদা কাজ করার জন্য নথিভুক্ত করা হয়েছে, কিন্তু এখন পর্যন্ত সঠিকভাবে প্রয়োগ করা হয়নি। - অ্যাপ কোড দ্বারা সেট করা MIME প্রকারগুলিকে স্বাভাবিক করুন বা সম্পূর্ণরূপে ছোট হাতের হতে মিডিয়া থেকে পড়ুন৷
-
AdPlaybackState
এ একটি এককUri
এর পরিবর্তে একটি সম্পূর্ণMediaItem
সহ বিজ্ঞাপনগুলিকে সংজ্ঞায়িত করুন৷ -
minSdk
বাড়িয়ে 19 করুন (Android KitKat)। এটি অন্যান্য সমস্ত AndroidX লাইব্রেরির সাথে সারিবদ্ধ , এবং আমাদের AndroidX নির্ভরতার সর্বশেষ সংস্করণগুলিতে আপগ্রেড করার জন্য এটি প্রয়োজনীয়৷ -
MediaMetadata.Builder.populate(MediaMetadata)
এartworkUri
এবংartworkData
উভয়ই পপুলেট করুন যখন তাদের মধ্যে অন্তত একটি নন-নাল ( #964 ) হয়।
-
- এক্সো প্লেয়ার:
-
PreloadMediaSource
এবংPreloadMediaPeriod
যোগ করুন যা অ্যাপগুলিকে প্লেব্যাকের আগে একটি নির্দিষ্ট স্টার্ট পজিশনে একটি বিষয়বস্তু মিডিয়া সোর্স প্রিলোড করতে দেয়।PreloadMediaSource
Timeline
পাওয়ার জন্য বিষয়বস্তু মিডিয়া উত্স প্রস্তুত করার, প্রদত্ত স্টার্ট পজিশনে পিরিয়ড প্রস্তুত করা এবং ক্যাশে করা, ট্র্যাক নির্বাচন করা এবং পিরিয়ডের জন্য মিডিয়া ডেটা লোড করার যত্ন নেয়। AppsPreloadMediaSource.PreloadControl
প্রয়োগ করে প্রিলোডের অগ্রগতি নিয়ন্ত্রণ করে এবং প্লেব্যাকের জন্য প্লেয়ারে প্রিলোড করা উৎস সেট করে। -
ExoPlayer.setImageOutput
যোগ করুন যা অ্যাপগুলিকেImageRenderer.ImageOutput
সেট করতে দেয়। -
DefaultRenderersFactory
এখন nullImageOutput
এবংImageDecoder.Factory.DEFAULT
সহ ডিফল্টরূপে প্লেয়ারকে একটিImageRenderer
প্রদান করে। - এমিট
Player.Listener.onPositionDiscontinuity
ইভেন্ট যখন নীরবতা এড়ানো হয় ( #765 )। - নিষ্কাশনের সময় সাবটাইটেল পার্স করার জন্য পরীক্ষামূলক সমর্থন যোগ করুন। আপনি
MediaSource.Factory.experimentalParseSubtitlesDuringExtraction()
ব্যবহার করে এটি সক্ষম করতে পারেন। -
PreloadMediaSource
সহ অভিযোজিত মিডিয়া উত্সগুলিকে সমর্থন করুন৷ -
HttpEngineDataSource
, HttpEngine API ব্যবহার করে একটিHttpDataSource
প্রয়োগ করুন। -
CompositeSequenceableLoader
সাবক্লাসিং প্রতিরোধ করুন। এই কম্পোনেন্টটি আগে এক্সটেনসিবল করা হয়েছিল কিন্তু লাইব্রেরির মধ্যে কখনও সাবক্লাস করা হয়নি। ডেকোরেটর প্যাটার্ন ব্যবহার করে একটি উদাহরণ মোড়ানো এবং একটি কাস্টমCompositeSequenceableLoaderFactory
প্রয়োগ করে কাস্টমাইজেশন করা যেতে পারে। - সমস্যাটি ঠিক করুন যেখানে একই সময়ে পুনরাবৃত্তি করলে এই আইটেমটি থেকে মেটাডেটা সাফ হয়ে যায় ( #1007 )।
-
BundledChunkExtractor.Factory
এবংDefaultHlsExtractorFactory
এexperimentalSetSubtitleParserFactory
পদ্ধতির নাম পরিবর্তন করেsetSubtitleParserFactory
সেট করুন এবংnull
পাস করার অনুমতি না দিন। পার্সিং আচরণ নিয়ন্ত্রণ করতে নতুনexperimentalParseSubtitlesDuringExtraction(boolean)
ব্যবহার করুন। - নিষ্কাশনের সময় ব্যবহৃত
SubtitleParser.Factory
কাস্টমাইজ করার জন্য সমর্থন যোগ করুন। এটিMediaSource.Factory.setSubtitleParserFactory()
দিয়ে অর্জন করা যেতে পারে। -
MergingMediaSource
থেকে উৎপন্ন সমস্তFormat.id
ক্ষেত্রে উৎস উপসর্গ যোগ করুন। এটি সনাক্ত করতে সাহায্য করে কোন উৎসটি একটিFormat
তৈরি করেছে ( #883 )। - কাস্টম কমন মিডিয়া ক্লায়েন্ট ডেটা (CMCD) কী নামগুলিকে শুধুমাত্র হাইফেন পরীক্ষা করার জন্য এটিকে পরিবর্তন করে যাচাই করার জন্য ব্যবহৃত রেজেক্স ঠিক করুন ( #1028 )।
- CMCD ক্যোয়ারী প্যারামিটার ( #1075 ) ডাবল-এনকোডিং বন্ধ করুন।
-
- ট্রান্সফরমার:
- H.265/HEVC SEF স্লো মোশন ভিডিও সমতল করার জন্য সমর্থন যোগ করুন।
- ট্রান্সমক্সিং গতি বাড়ান, বিশেষ করে 'ভিডিও সরান' সম্পাদনার জন্য।
- আউটপুট ফাইল একটি ভিডিও ফ্রেমে শুরু হয় তা নিশ্চিত করতে API যোগ করুন। এটি প্লেয়ার বাস্তবায়নের সাথে ট্রিমিং অপারেশনগুলির আউটপুটকে আরও সামঞ্জস্যপূর্ণ করে তুলতে পারে যা উপস্থাপনা টাইমস্ট্যাম্প ( #829 ) পর্যন্ত প্রথম ভিডিও ফ্রেম দেখায় না।
- একক সম্পদ MP4 ট্রিম অপারেশন অপ্টিমাইজ করার জন্য সমর্থন যোগ করুন।
- আউটপুট ফাইলে একটি ভিডিও ফ্রেমের প্রথম টাইমস্ট্যাম্প আছে তা নিশ্চিত করতে সমর্থন যোগ করুন। iOS ভিত্তিক প্লেয়ারগুলিতে কালো ফ্রেম দিয়ে শুরু হওয়া আউটপুট ফাইলগুলিকে ঠিক করে ( #829 )।
- ট্র্যাক নির্বাচন:
- ছবি ট্র্যাক নির্বাচন সক্ষম করতে
DefaultTrackSelector.selectImageTrack
যোগ করুন। -
TrackSelectionParameters.isPrioritizeImageOverVideoEnabled
যোগ করুন যদি একটি ইমেজ ট্র্যাক এবং একটি ভিডিও ট্র্যাক উভয়ই উপলব্ধ থাকে তবে একটি ইমেজ ট্র্যাক নির্বাচন করতে হবে কিনা। ডিফল্ট মানfalse
যার মানে একটি ভিডিও ট্র্যাক নির্বাচন করা অগ্রাধিকার।
- ছবি ট্র্যাক নির্বাচন সক্ষম করতে
- নিষ্কাশনকারী:
-
ColorInfo.colorSpace
,ColorInfo.colorTransfer
, এবংColorInfo.colorRange
মান ( #692 ) পুনরুদ্ধার করতে MP4 এক্সট্র্যাক্টরে অতিরিক্ত AV1C পার্সিং যোগ করুন। - MP3: একটি
Info
শিরোনাম (Xing
শিরোলেখের CBR সমতুল্য) ফাইলের জন্য ধ্রুবক বিটরেট (CBR) ব্যবহার করুন। আগে আমরাInfo
হেডার থেকে সিক টেবিল ব্যবহার করতাম, কিন্তু এর ফলে কম সুনির্দিষ্ট চাওয়া হয় যদি আমরা এটিকে উপেক্ষা করি এবং ফাইলটি CBR বলে ধরে নিই। - MPEG2-TS: DTS, DTS-LBR এবং DTS:X Profile2 সমর্থন যোগ করুন ( #275 )।
- TS বর্ণনাকারী থেকে অডিও প্রকারগুলি বের করুন এবং সেগুলিকে রোল ফ্ল্যাগে ম্যাপ করুন, ব্যবহারকারীদের আরও ভাল-অবহিত অডিও ট্র্যাক নির্বাচন করতে অনুমতি দেয় ( #973 )।
-
- শ্রুতি:
- ভিডিও:
-
MediaCodecVideoRenderer
কনস্ট্রাক্টরটি পরিবর্তন করুন যা একটিVideoFrameProcessor.Factory
আর্গুমেন্ট নেয় এবং এটি একটি কনস্ট্রাক্টর দিয়ে প্রতিস্থাপন করুন যা একটিVideoSinkProvider
আর্গুমেন্ট নেয়৷ যে অ্যাপগুলি একটি কাস্টমVideoFrameProcessor.Factory
ইনজেক্ট করতে চায়৷ ফ্যাক্টরি একটিCompositingVideoSinkProvider
ইনস্ট্যান্ট করতে পারে যা কাস্টমVideoFrameProcessor.Factory
ব্যবহার করে এবং ভিডিও সিঙ্ক প্রদানকারীকেMediaCodecVideoRenderer
এ পাস করে৷
-
- পাঠ্য:
- সমাধানের জন্য বিটম্যাপ সংকেতের সিরিয়ালাইজেশন ঠিক করুন
DefaultExtractorsFactory.setTextTrackTranscodingEnabled
( #836 ) ব্যবহার করার সময়Tried to marshall a Parcel that contained Binder objects
। - CEA-708:
rowLock
মান উপেক্ষা করুন। CEA-708-E S-2023 স্পেক বলে যেrowLock
এবংcolumnLock
উভয়কেই সত্য বলে ধরে নেওয়া উচিত, স্ট্রীমে উপস্থিত মান নির্বিশেষে (columnLock
সমর্থন বাস্তবায়িত হয় না, তাই এটি কার্যকরভাবে সর্বদা মিথ্যা বলে ধরে নেওয়া হয়)।
- সমাধানের জন্য বিটম্যাপ সংকেতের সিরিয়ালাইজেশন ঠিক করুন
- ছবি:
- DASH থাম্বনেইলের জন্য সমর্থন যোগ করুন। গ্রিড ইমেজ ক্রপ করা হয় এবং পৃথক থাম্বনেইল তাদের উপস্থাপনা সময়ের কাছাকাছি
ImageOutput
প্রদান করা হয়.
- DASH থাম্বনেইলের জন্য সমর্থন যোগ করুন। গ্রিড ইমেজ ক্রপ করা হয় এবং পৃথক থাম্বনেইল তাদের উপস্থাপনা সময়ের কাছাকাছি
- DRM:
- ডিফল্টরূপে অবিলম্বে DRM সামগ্রীতে 'ক্লিয়ার লিড' আনএনক্রিপ্ট করা নমুনাগুলি চালান, এমনকি যদি পরবর্তী এনক্রিপ্ট করা নমুনার কীগুলি এখনও প্রস্তুত না হয়। প্লেব্যাক অবস্থানটি এনক্রিপ্ট করা নমুনাগুলিতে পৌঁছানোর সময় কীগুলি এখনও প্রস্তুত না হলে এটি মধ্য-প্লেব্যাক স্টলের দিকে নিয়ে যেতে পারে (কিন্তু আগে প্লেব্যাক এই সময়ে একেবারেই শুরু হত না)। এই আচরণ
MediaItem.DrmConfiguration.Builder.setPlayClearContentWithoutKey
বাDefaultDrmSessionManager.Builder.setPlayClearSamplesWithoutKeys
দিয়ে নিষ্ক্রিয় করা যেতে পারে।
- ডিফল্টরূপে অবিলম্বে DRM সামগ্রীতে 'ক্লিয়ার লিড' আনএনক্রিপ্ট করা নমুনাগুলি চালান, এমনকি যদি পরবর্তী এনক্রিপ্ট করা নমুনার কীগুলি এখনও প্রস্তুত না হয়। প্লেব্যাক অবস্থানটি এনক্রিপ্ট করা নমুনাগুলিতে পৌঁছানোর সময় কীগুলি এখনও প্রস্তুত না হলে এটি মধ্য-প্লেব্যাক স্টলের দিকে নিয়ে যেতে পারে (কিন্তু আগে প্লেব্যাক এই সময়ে একেবারেই শুরু হত না)। এই আচরণ
- আইএমএ এক্সটেনশন:
- যেখানে উপযুক্ত ফাইল এক্সটেনশন ছাড়া DASH এবং HLS বিজ্ঞাপন চালানো যাবে না সেই সমস্যার সমাধান করুন।
- সেশন:
- টিভি অ্যাপ্লিকেশানগুলির জন্য ডাবল-ক্লিক সনাক্তকরণ অক্ষম করুন ( #962 )।
- যেখানে মিডিয়া কন্ট্রোলার এবং সেশনের মধ্যে শুধুমাত্র নন-নাল এক্সট্রা সহ
MediaItem.RequestMetadata
প্রেরণ করা হয় না সেখানে সমস্যাটি সমাধান করুন। -
MediaLibrarySession.Builder
এ কনস্ট্রাক্টর যোগ করুন যা শুধুমাত্র একটিMediaLibraryService
এর পরিবর্তে একটিContext
নেয়।
- HLS এক্সটেনশন:
- প্যাকেজ-ব্যক্তিগত দৃশ্যমানতায়
HlsMediaPeriod
কমিয়ে দিন। এই ধরনের HLS প্যাকেজের বাইরে থেকে সরাসরি নির্ভর করা উচিত নয়। - সমাধান আরও দক্ষতার সাথে একটি সেগমেন্ট শুরু করতে চায় ( #1031 )।
- প্যাকেজ-ব্যক্তিগত দৃশ্যমানতায়
- ডিকোডার এক্সটেনশন (FFmpeg, VP9, AV1, MIDI, ইত্যাদি):
- MIDI ডিকোডার: SysEx ইভেন্ট বার্তা উপেক্ষা করুন ( #710 )।
- পরীক্ষা উপযোগিতা:
-
TestPlayerRunHelper.playUntilPosition
এ প্লেব্যাক বিরতি দেবেন না। পরীক্ষাটি প্লেব্যাকটিকে একটি বাজানো অবস্থায় রাখে, কিন্তু যতক্ষণ না পরীক্ষাটি দাবী এবং আরও ক্রিয়াকলাপ যোগ করতে সক্ষম হয় ততক্ষণ পর্যন্ত অগ্রগতি স্থগিত করে।
-
- ডেমো অ্যাপ:
- শর্ট-ফর্ম কন্টেন্ট ব্যবহারের ক্ষেত্রে
PreloadMediaSource
এর ব্যবহার ডেমো করতে একটি শর্টফর্ম ডেমো মডিউল যোগ করুন।
- শর্ট-ফর্ম কন্টেন্ট ব্যবহারের ক্ষেত্রে
সংস্করণ 1.3.0-rc01
22 ফেব্রুয়ারি, 2024
1.3.0 স্থিতিশীল সংস্করণ ব্যবহার করুন।
সংস্করণ 1.3.0-beta01
7 ফেব্রুয়ারি, 2024
1.3.0 স্থিতিশীল সংস্করণ ব্যবহার করুন।
সংস্করণ 1.3.0-alpha01
15 জানুয়ারী, 2024
1.3.0 স্থিতিশীল সংস্করণ ব্যবহার করুন।
সংস্করণ 1.2.0
সংস্করণ 1.2.1
জানুয়ারী 9, 2024
- এক্সো প্লেয়ার:
- যেখানে ম্যানুয়াল
LiveConfiguration.min/maxOffset
পরিসরের বাইরে খোঁজে সেই সমস্যার সমাধান করুন অফসেটকেmin/maxOffset
এ সামঞ্জস্য করতে থাকুন। - 3, 5, 6, 7 এবং 8 চ্যানেলের ( #8396 ) জন্য OPUS এবং VORBIS চ্যানেল লেআউটগুলি যে ভুল তা সমাধান করুন।
- একটি লাইভ স্ট্রীমে ভুলভাবে স্ট্রীমটিকে তার ডিফল্ট অবস্থানে শুরু করতে দেওয়ার পরে ট্র্যাক নির্বাচন শূন্য করার পরে সমস্যাটি সমাধান করুন ( #9347 )।
- সমস্যাটি ঠিক করুন যেখানে
CmcdData.Factory
এর নতুন দৃষ্টান্তগুলি খণ্ড উত্স থেকেbufferedDurationUs
এর জন্য নেতিবাচক মান গ্রহণ করছে, যার ফলে একটিIllegalArgumentException
( #888 ) হয়েছে৷
- যেখানে ম্যানুয়াল
- ট্রান্সফরমার:
- একটি উচ্চ অপারেটিং রেট সেট করার কারণে কনফিগারেশনের সময় এনকোডার নিক্ষেপ করবে এমন একটি সমস্যা নিয়ে কাজ করুন।
- নিষ্কাশনকারী:
- উচ্চতর রেজোলিউশনের কারণে প্লেব্যাকের জন্য স্বয়ংক্রিয়ভাবে নির্বাচিত হওয়া ঠেকাতে JPEG মোশন ফটোগুলিতে সেকেন্ডারি (অপ্লেযোগ্য) HEVC ট্র্যাকগুলিকে
ROLE_FLAG_ALTERNATE
হিসাবে চিহ্নিত করুন৷ - TS H264 স্ট্রীম ( #864 ) এর জন্য ভুল কীফ্রেম সনাক্তকরণ ঠিক করুন।
- 47721 সেকেন্ডের ( #855 ) থেকে দীর্ঘ TS স্ট্রিমগুলির সময়কাল অনুমান ঠিক করুন।
- উচ্চতর রেজোলিউশনের কারণে প্লেব্যাকের জন্য স্বয়ংক্রিয়ভাবে নির্বাচিত হওয়া ঠেকাতে JPEG মোশন ফটোগুলিতে সেকেন্ডারি (অপ্লেযোগ্য) HEVC ট্র্যাকগুলিকে
- শ্রুতি:
- একাধিকবার কল করা হলে
SilenceSkippingAudioProcessor
জন্য EOS-এর হ্যান্ডলিং ঠিক করুন ( #712 )।
- একাধিকবার কল করা হলে
- ভিডিও:
- Galaxy Tab S7 FE, Google TV এর সাথে Chromecast এবং Lenovo M10 FHD Plus-এ ডিভাইসের সমস্যার সমাধান যোগ করুন যার কারণে 60fps AVC স্ট্রীমগুলি অসমর্থিত হিসাবে চিহ্নিত করা হয়েছে ( #693 )৷
- মেটাডেটা:
- বাগ ঠিক করুন যেখানে
MediaMetadata
শুধুমাত্র বড় হাতের কী ( #876 ) দিয়ে ভরবিস মন্তব্য থেকে পপুলেট করা হয়েছিল। - খুব বড় ID3 ফ্রেম পার্স করার সময়
OutOfMemoryError
ধরুন, যার অর্থ প্লেব্যাক সম্পূর্ণরূপে ব্যর্থ হওয়ার পরিবর্তে ট্যাগ তথ্য ছাড়াই চালিয়ে যেতে পারে৷
- বাগ ঠিক করুন যেখানে
- DRM:
- বানোয়াট ClearKey
https://default.url
লাইসেন্স URL-এর জন্য API 33+ তে ওয়ার্কআরাউন্ড প্রসারিত করুন (আগে শুধুমাত্র API 33-এ ঠিকভাবে প্রয়োগ করা হয়েছিল) ( #837 )। - প্লেয়ারের সাথে সংযুক্ত সারফেস ছাড়াই এনক্রিপ্ট করা থেকে সাফ কন্টেন্টে স্যুইচ করার সময়
ERROR_DRM_SESSION_NOT_OPENED
ঠিক করুন। পরিষ্কার বিষয়বস্তু চালানোর জন্য একটি নিরাপদ ডিকোডার ভুলভাবে ব্যবহার করার কারণে ত্রুটি ঘটেছে।
- বানোয়াট ClearKey
- সেশন:
-
MediaMetadataCompat
এMediaMetadata.extras
এবংMediaMetadata.extras
এMediaMetadataCompat
( #756 , #802 ) কাস্টম কী এবং মানগুলি রাখুন। - লিগ্যাসি কন্ট্রোলার ( #644 ) এর জন্য সম্প্রচারের
notifyChildrenChanged
ঠিক করুন। - একটি বাগ ঠিক করুন যেখানে একটি অক্ষম
setWhen
জন্য একটি নেতিবাচক সময় সেট করুন যখন বিজ্ঞপ্তির টাইমার কিছু ডিভাইসে ক্র্যাশ ঘটায় ( #903 )। -
IllegalStateException
ঠিক করুন যখন মিডিয়া নোটিফিকেশন কন্ট্রোলার সংযোগ সম্পূর্ণ না করে যখন প্রথম বিজ্ঞপ্তি আপডেটের অনুরোধ করা হয় ( #917 )।
-
- UI:
- ড্যাশ এক্সটেনশন:
- DASH ম্যানিফেস্টে ( #688 ) ডলবির জন্য চ্যানেলের সংখ্যা 5 হিসাবে "f800" পার্স করুন।
- ডিকোডার এক্সটেনশন (FFmpeg, VP9, AV1, MIDI, ইত্যাদি):
- কাস্ট এক্সটেনশন:
- কাস্ট ডিভাইসে মিডিয়া লোডিং ব্যর্থ হলে অ্যাপটি ক্র্যাশ না করার জন্য একটি
Timeline
তৈরির স্যানিটাইজ করুন ( #708 )।
- কাস্ট ডিভাইসে মিডিয়া লোডিং ব্যর্থ হলে অ্যাপটি ক্র্যাশ না করার জন্য একটি
সংস্করণ 1.2.0
15 নভেম্বর, 2023
- সাধারণ গ্রন্থাগার:
-
Log.Logger
ইন্টারফেসের পদ্ধতিতে একটি@Nullable Throwable
প্যারামিটার যোগ করুন। এই পদ্ধতিরmessage
প্যারামিটারে আরLog.{d,i,w,e}()
-এThrowable
পাস করা কোনো তথ্য থাকে নাLogger.appendThrowableString(String, Throwable)
)। - কোটলিন সামঞ্জস্যের সমস্যাটি ঠিক করুন যেখানে বাতিলযোগ্য জেনেরিক টাইপ প্যারামিটার এবং বাতিলযোগ্য অ্যারে উপাদানের প্রকারগুলি বাতিলযোগ্য হিসাবে সনাক্ত করা যায় না। উদাহরণ হল
TrackSelectorResult
এবংSimpleDecoder
পদ্ধতি প্যারামিটার ( #6792 )। - প্লেব্যাক সাময়িকভাবে চাপা থাকার সময় একটি "প্লে" বোতাম দেখানোর জন্য
Util.shouldShowPlayButton
এ ডিফল্ট UI এবং বিজ্ঞপ্তি আচরণ পরিবর্তন করুন (যেমন অস্থায়ী অডিও ফোকাস ক্ষতির কারণে)।PlayerView.setShowPlayButtonIfPlaybackIsSuppressed(false)
বাMediaSession.Builder.setShowPlayButtonIfPlaybackIsSuppressed(false)
( #11213 ) ব্যবহার করে উত্তরাধিকার আচরণ বজায় রাখা যেতে পারে। - https://issuetracker.google.com/251172715 ঠিক করতে
androidx.annotation:annotation-experimental
1.3.1
-এ আপগ্রেড করুন। -
ExoPlayer.setAudioAttributes
Player
ইন্টারফেসে সরান।
-
- এক্সো প্লেয়ার:
- ডিকোড-শুধু নমুনাগুলি সঠিকভাবে সনাক্ত না করার কারণে AC4 স্ট্রীমগুলিতে অনুসন্ধানের সমস্যাগুলি সমাধান করুন ( #11000 )।
- যখন এই বৈশিষ্ট্যটি
ExoPlayer.Builder.setSuppressPlaybackOnUnsuitableOutput
এর মাধ্যমে সক্ষম করা হয় তখন অনুপযুক্ত অডিও আউটপুট ডিভাইসে (যেমন Wear OS ডিভাইসে বিল্ট-ইন স্পিকার) প্লেব্যাকের দমন যোগ করুন। প্লেব্যাক দমনের কারণটিPlayer.PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_OUTPUT
হিসাবে আপডেট করা হবে৷ PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_OUTPUT যদি প্লেব্যাকের চেষ্টা করা হয় যখন কোন উপযুক্ত অডিও আউটপুট উপলব্ধ না থাকে, বা প্লেব্যাকের সময় সমস্ত উপযুক্ত আউটপুট সংযোগ বিচ্ছিন্ন হয়৷ একটি উপযুক্ত আউটপুট সংযুক্ত হলে দমনের কারণটি সরানো হবে। -
Player.replaceMediaItem(s)
এর মাধ্যমে তৈরির পরেMediaItem
আপডেটগুলি গ্রহণ করতেMediaSource.canUpdateMediaItem
এবংMediaSource.updateMediaItem
যোগ করুন৷ -
Player.replaceMediaItem(s)
( #33 , #9978 ) এর মাধ্যমে লাইব্রেরি দ্বারা প্রদত্ত সমস্তMediaSource
ক্লাসের জন্যMediaItem
আপডেটের অনুমতি দিন। -
MimeTypes.TEXT_EXOPLAYER_CUES
থেকেMimeTypes.APPLICATION_MEDIA3_CUES
নাম পরিবর্তন করুন। - একটি নমুনা হিসাবে
TrackOutput
একটি সম্পূর্ণ পিএনজি ফাইল পাঠায় এবং পাঠ করে এমনPngExtractor
যোগ করুন। -
SequenceableLoader.continueLoading(long)
পদ্ধতিSequenceableLoader
ইন্টারফেসেSequenceableLoader.continueLoading(LoadingInfo loadingInfo)
এ উন্নত করুন।LoadingInfo
বিদ্যমানplaybackPositionUs
ছাড়াওplaybackSpeed
এবংlastRebufferRealtimeMs
সহ অতিরিক্ত প্যারামিটার রয়েছে। -
ChunkSource.getNextChunk(long, long, List, ChunkHolder)
পদ্ধতিChunkSource
ইন্টারফেসেChunkSource.getNextChunk(LoadingInfo, long, List, ChunkHolder)
উন্নত করুন। - কমন মিডিয়া ক্লায়েন্ট ডেটা (CMCD) লগিং-এ অতিরিক্ত ক্ষেত্র যুক্ত করুন: বাফার স্টারভেশন (
bs
), সময়সীমা (dl
), প্লেব্যাক রেট (pr
) এবং স্টার্টআপ (su
) ( #8699 )। -
ColorInfo
( #491 ) এ লুমা এবং ক্রোমা বিটডেপথ যোগ করুন। - কমন মিডিয়া ক্লায়েন্ট ডেটা (CMCD) লগিং-এ অতিরিক্ত ক্ষেত্র যোগ করুন: পরবর্তী অবজেক্ট রিকোয়েস্ট (
nor
) এবং পরবর্তী রেঞ্জ রিকোয়েস্ট (nrr
) ( #8699 )। - ক্যোয়ারী প্যারামিটার ( #553 ) ব্যবহার করে কমন মিডিয়া ক্লায়েন্ট ডেটা (CMCD) ডেটা প্রেরণ করার জন্য কার্যকারিতা যুক্ত করুন।
-
ExperimentalBandwidthMeter
( #612 ) এConcurrentModificationException
ঠিক করুন। -
CompositeMediaSource.getMediaTimeForChildMediaTime
এMediaPeriodId
প্যারামিটার যোগ করুন। -
ConcatenatingMediaSource2
( #11226 ) এClippingMediaSource
(এবং পিরিয়ড/উইন্ডো টাইম অফসেট সহ অন্যান্য উত্স) সমর্থন করুন। - একটি
MediaPeriodId
আর্গুমেন্ট পেতেBaseRenderer.onStreamChanged()
পরিবর্তন করুন।
- ট্রান্সফরমার:
- ইমেজ ইনপুটগুলির জন্য EXIF রোটেশন ডেটা পার্স করুন।
-
TransformationRequest.HdrMode
টীকা প্রকার এবং এর সাথে সম্পর্কিত ধ্রুবকগুলি সরান৷ পরিবর্তেComposition.HdrMode
এবং এর সাথে যুক্ত ধ্রুবক ব্যবহার করুন। - ঘূর্ণন সমস্যা সমাধানের জন্য
OverlaySettings
সরল করুন। -
SampleConsumer.queueInputBitmap
এরframeRate
এবংdurationUs
প্যারামিটারTimestampIterator
পরিবর্তন করা হয়েছে।
- ট্র্যাক নির্বাচন:
-
DefaultTrackSelector.Parameters.allowAudioNonSeamlessAdaptiveness
সিমলেস অ্যাডাপ্টিভনেস যোগ করুন সুস্পষ্টভাবে নন-সিমলেস অ্যাডাপ্টেশনকে অনুমতি দিতে বা অননুমোদিত করতে। ডিফল্ট তার বর্তমান আচরণtrue
থাকে।
-
- নিষ্কাশনকারী:
- MPEG-TS: একটি স্ট্রীমের শেষ অ্যাক্সেস ইউনিটকে নমুনা সারিতে দিয়ে শেষ ফ্রেমটি রেন্ডার করা হয়েছে তা নিশ্চিত করুন ( #7909 )।
-
rotationDegrees
নির্ধারণ করার সময় টাইপো ঠিক করুন।projectionPosePitch
projectionPoseRoll
( #461 ) এ পরিবর্তন করা হয়েছে। -
Extractor
ইনস্ট্যান্স সরাসরিinstanceof
দিয়ে পরিদর্শন করা যেতে পারে এমন ধারণাটি সরান। আপনি যদিExtractor
বাস্তবায়নের বিবরণে রানটাইম অ্যাক্সেস চান তবে আপনাকে প্রথমেExtractor.getUnderlyingInstance
কল করতে হবে। -
BmpExtractor
যোগ করুন। -
WebpExtractor
যোগ করুন। -
HeifExtractor
যোগ করুন। -
Mp4Extractor
এ QuickTime ক্লাসিক সমর্থন যোগ করুন।
- শ্রুতি:
- MP4 এবং Matroska-এ 24/32-বিট বিগ-এন্ডিয়ান PCM-এর জন্য সমর্থন যোগ করুন এবং MP4-এ
lpcm
এর জন্য PCM এনকোডিং পার্স করুন। - MP4 এ Vorbis অডিও নিষ্কাশনের জন্য সমর্থন যোগ করুন।
-
AudioSink.getFormatOffloadSupport(Format)
যোগ করুন যা অফলোড সমর্থনের স্তর পুনরুদ্ধার করে যা সিঙ্ক একটিDefaultAudioOffloadSupportProvider
এর মাধ্যমে ফর্ম্যাটের জন্য সরবরাহ করতে পারে। এটি নতুনAudioOffloadSupport
প্রদান করে যাতেisFormatSupported
,isGaplessSupported
এবংisSpeedChangeSupported
রয়েছে। -
AudioSink.setOffloadMode()
যোগ করুন যার মাধ্যমে অডিও সিঙ্কে অফলোড কনফিগারেশন কনফিগার করা হয়েছে। ডিফল্ট হলAudioSink.OFFLOAD_MODE_DISABLED
। -
TrackSelectionParameters
এsetAudioOffloadPreference
মাধ্যমে অফলোড সক্ষম করা যেতে পারে। যদি সেট পছন্দ সক্রিয় করতে হয়, ডিভাইসটি ফর্ম্যাটের জন্য অফলোড সমর্থন করে এবং ট্র্যাক নির্বাচন একটি একক অডিও ট্র্যাক হয়, তাহলে অডিও অফলোড সক্ষম হবে৷ - যদি
audioOffloadModePreference
AUDIO_OFFLOAD_MODE_PREFERENCE_REQUIRED
তে সেট করা থাকে, তাহলেDefaultTrackSelector
শুধুমাত্র একটি অডিও ট্র্যাক নির্বাচন করবে এবং শুধুমাত্র যদি সেই ট্র্যাকের বিন্যাসটি অফলোডে সমর্থিত হয়। যদি অফলোডে কোনো অডিও ট্র্যাক সমর্থিত না হয়, তাহলে কোনো ট্র্যাক নির্বাচন করা হবে না৷ - ট্র্যাক ট্রানজিশনের পরে প্লেব্যাক অবস্থানের সমস্যার কারণে প্রি-এপিআই স্তর 33 হলে অফলোডের জন্য গ্যাপলেস সমর্থন অক্ষম করা হচ্ছে।
-
DefaultRenderersFactory.buildAudioSink
পদ্ধতি স্বাক্ষর থেকে প্যারামিটারenableOffload
সরান। -
DefaultAudioSink.Builder.setOffloadMode
পদ্ধতি সরান। - intdef মান
DefaultAudioSink.OffloadMode.OFFLOAD_MODE_ENABLED_GAPLESS_DISABLED
সরান। - অফলোড প্লেব্যাকের সময় Opus গ্যাপলেস মেটাডেটার জন্য সমর্থন যোগ করুন।
- প্রথম লিখতে ব্যর্থ হলে অফলোড অক্ষম করে রেন্ডারার পুনরুদ্ধারের অনুমতি দিন ( #627 )।
- অডিও-কেবল অফলোড প্লেব্যাকের জন্য ডিফল্টরূপে অফলোড শিডিউলিং সক্ষম করুন৷
-
ExoPlayer.experimentalSetOffloadSchedulingEnabled
এবংAudioOffloadListener.onExperimentalOffloadSchedulingEnabledChanged
মুছুন। -
onExperimentalSleepingForOffloadChanged
onSleepingForOffloadChanged
এবংonExperimentalOffloadedPlayback
onOffloadedPlayback
হিসাবে পুনঃনামকরণ করা হয়েছে। - অডিও অফলোড মোড সম্পর্কিত
TrackSelectionParameters
ইন্টারফেস এবং সংজ্ঞা একটি অভ্যন্তরীণAudioOffloadPreferences
ক্লাসে সরান। -
AnalyticsListener
,AudioRendererEventListener
এবংAudioSink.Listener
এonAudioTrackInitialized
এবংonAudioTrackReleased
কলব্যাক যোগ করুন। - ডিটিএস এক্সপ্রেস অডিও বাফার আন্ডারফ্লো সমস্যা ( #650 ) ঠিক করুন।
- E-AC3-JOC-এর জন্য ক্ষমতা পরীক্ষা করে যেখানে একটি
IllegalArgumentException
( #677 ) নিক্ষেপ করে সেখানে বাগ ঠিক করুন।
- MP4 এবং Matroska-এ 24/32-বিট বিগ-এন্ডিয়ান PCM-এর জন্য সমর্থন যোগ করুন এবং MP4-এ
- ভিডিও:
-
MediaCodecVideoRenderer
একটি কাস্টমVideoFrameProcessor.Factory
ব্যবহার করার অনুমতি দিন। - অডিও স্ট্রীম নেতিবাচক টাইমস্ট্যাম্প ( #291 ) দিয়ে শুরু হলে যেখানে প্রথম ফ্রেমটি রেন্ডার করা যাবে না সেখানে বাগ ঠিক করুন।
-
- পাঠ্য:
-
ExoplayerCuesDecoder
সরান।sampleMimeType = application/x-media3-cues
সহ পাঠ্য ট্র্যাকগুলি এখনSubtitleDecoder
উদাহরণের প্রয়োজন ছাড়াই সরাসরিTextRenderer
দ্বারা পরিচালিত হয়।
-
- মেটাডেটা:
-
MetadataDecoder.decode
আর "ডিকোড-অনলি" নমুনার জন্য বলা হবে না কারণ বাস্তবায়নকে যেভাবেই হোক নাল দিতে হবে।
-
- প্রভাব:
-
VideoFrameProcessor.queueInputBitmap(Bitmap, Iterator<Long>)
টাইমস্ট্যাম্প দ্বারা সারিবদ্ধ বিটম্যাপ ইনপুট যোগ করুন। -
VideoFrameProcessor.registerInputStream()
নন-ব্লকিং-এ পরিবর্তন করুন। অ্যাপগুলিকে অবশ্যইVideoFrameProcessor.Listener#onInputStreamRegistered()
প্রয়োগ করতে হবে৷ -
VideoFrameProcessor.queueInputBitmap
এরframeRate
এবংdurationUs
প্যারামিটারTimestampIterator
পরিবর্তন করা হয়েছে।
-
- আইএমএ এক্সটেনশন:
- বাগ ফিক্স করুন যেখানে একটি মাল্টি-পিরিয়ড DASH লাইভ স্ট্রীম যা একটি প্লেলিস্টের প্রথম আইটেম নয় সেটি একটি ব্যতিক্রম ( #571 ) ফেলতে পারে।
-
AdsLoader.destroy()
কল করার আগে StreamManager রিলিজ করুন - IMA SDK সংস্করণকে 3.31.0 এ বাম্প করুন৷
- সেশন:
-
DefaultMediaNotificationProvider
( #167 ) এFOREGROUND_SERVICE_IMMEDIATE
এ বিজ্ঞপ্তি ফোরগ্রাউন্ড পরিষেবা আচরণ সেট করুন। - Samsung ডিভাইসে ( #167 ) অবহেলিত API-এর সমস্যা এড়াতে API 31-এর উপরে শুধুমাত্র
android.media.session.MediaSession.setMediaButtonBroadcastReceiver()
ব্যবহার করুন। - উপলব্ধ কমান্ড এবং বিজ্ঞপ্তি এবং প্ল্যাটফর্ম সেশন পূরণ করতে ব্যবহৃত কাস্টম লেআউট সেট করতে প্রক্সি হিসাবে মিডিয়া বিজ্ঞপ্তি নিয়ামক ব্যবহার করুন।
- মিডিয়া বোতাম ইভেন্টগুলিকে রূপান্তর করুন যা Media3-এর মধ্যে
MediaSessionService.onStartCommand()
দ্বারা প্রাপ্ত হয় এবং সেগুলিকে প্ল্যাটফর্ম সেশনে রুট করার পরিবর্তে মিডিয়া3-এ ফিরে যান। এর সাহায্যে, কলার কন্ট্রোলার সর্বদা মিডিয়া নোটিফিকেশন কন্ট্রোলার এবং অ্যাপগুলি সমস্ত সমর্থিত API স্তরে একই ভাবে বিজ্ঞপ্তি থেকে আসা কলগুলিকে সহজেই চিনতে পারে। - যেখানে
MediaController.getCurrentPosition()
একটি লিগ্যাসিMediaSessionCompat
এর সাথে সংযুক্ত থাকাকালীন অগ্রসর হচ্ছে না সেখানে বাগটি ঠিক করুন। - সুবিধার জন্য
MediaLibrarySession.getSubscribedControllers(mediaId)
যোগ করুন। - অভিভাবক আইডি যেটির জন্য নিয়ামক সাবস্ক্রাইব করেছেন তার উপলব্ধতা নিশ্চিত করতে
MediaLibrarySession.Callback.onSubscribe()
ওভাররাইড করুন৷ সফল হলে, সাবস্ক্রিপশন গৃহীত হয় এবংnotifyChildrenChanged()
ব্রাউজারকে ( #561 ) জানানোর জন্য অবিলম্বে কল করা হয়। - Automotive OS এর জন্য সেশন ডেমো মডিউল যোগ করুন এবং Android Auto এর জন্য সেশন ডেমো সক্ষম করুন।
- মিডিয়া বিজ্ঞপ্তি কন্ট্রোলারের জন্য
COMMAND_GET_TIMELINE
উপলব্ধ না থাকলে ফ্রেমওয়ার্ক সেশনের সারি সেট করবেন না৷ ফ্রেমওয়ার্ক সেশন থেকে ক্লায়েন্ট কন্ট্রোলার রিডিং হিসাবে Android Auto-এর সাথে, এটি এমন প্রভাব ফেলে যে Android Auto-এর UI-তেqueue
বোতামটি প্রদর্শিত হয় না ( #339 )। -
SimpleBitmapLoader
( #271 , #327 ) এর পরিবর্তে ডিফল্টরূপেDataSourceBitmapLoader
ব্যবহার করুন। -
MediaSession.Callback.onMediaButtonEvent(Intent)
যোগ করুন যা অ্যাপগুলিকে ডিফল্ট মিডিয়া বোতাম ইভেন্ট পরিচালনা ওভাররাইড করতে দেয়।
-
- UI:
- Wear OS ডিভাইসগুলির জন্য একটি
Player.Listener
ইমপ্লিমেন্টেশন যোগ করুন যাPlayer.PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_OUTPUT
এর কারণে প্লেব্যাক সাপ্রেশন পরিচালনা করে। PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_OUTPUT ব্যবহারকারীকে একটি উপযুক্ত অডিও আউটপুট (যেমন ব্লুটুথ হেডফোন) সংযোগ করার জন্য একটি সিস্টেম ডায়ালগ চালু করার মাধ্যমে। শ্রোতা স্বয়ংক্রিয়ভাবে প্লেব্যাক শুরু করবে যদি একটি উপযুক্ত ডিভাইস কনফিগারযোগ্য সময়সীমার মধ্যে সংযুক্ত থাকে (ডিফল্ট 5 মিনিট)।
- Wear OS ডিভাইসগুলির জন্য একটি
- ডাউনলোড:
- Android 14 সামঞ্জস্যের জন্য
DownloadService
এর জন্য "ডেটা সিঙ্ক" ফোরগ্রাউন্ড পরিষেবার ধরণ ঘোষণা করুন। এই পরিষেবাটি ব্যবহার করার সময়, অ্যাপটিকে ম্যানিফেস্টেforegroundServiceType
হিসাবেdataSync
যোগ করতে হবে এবংFOREGROUND_SERVICE_DATA_SYNC
অনুমতি ( #11239 ) যোগ করতে হবে।
- Android 14 সামঞ্জস্যের জন্য
- HLS এক্সটেনশন:
- HLS লাইভ প্লেলিস্ট রিফ্রেশ করুন একটি ব্যবধান সহ শেষ লোড শুরুর সময় থেকে গণনা করা শেষ লোড সমাপ্ত সময়ের ( #663 ) থেকে।
- ড্যাশ এক্সটেনশন:
- সেগমেন্ট টেমপ্লেট URL-এ একই DASH শনাক্তকারীর একাধিক অনুমতি দিন।
- নিষ্কাশনের সময় সাবটাইটেল পার্স করার জন্য পরীক্ষামূলক সমর্থন যোগ করুন। এটি ওভারল্যাপিং সাবটাইটেল মার্জ করার জন্য আরও ভাল সমর্থন রয়েছে, সাবটাইটেল সেগমেন্টগুলির মধ্যে স্থানান্তর করার সময় ফ্লিকারিং সমাধান করা সহ। আপনি
DashMediaSource.Factory.experimentalParseSubtitlesDuringExtraction()
( #288 ) ব্যবহার করে এটি সক্ষম করতে পারেন।
- RTSP এক্সটেনশন:
- এমন একটি রেসের অবস্থা ঠিক করুন যা TCP-এ ফিরে যাওয়ার সময়
IndexOutOfBoundsException
হতে পারে, বা কিছু পরিস্থিতিতে প্লেব্যাক ঝুলতে পারে। -
RtspMediaPeriod
( #577 ) এর লোডিং অবস্থা ফেরানোর সময় RTSP সেটআপে স্থিতি পরীক্ষা করুন। - বিকল্প প্রতিক্রিয়া পাবলিক হেডারে কাস্টম Rtsp অনুরোধ পদ্ধতি উপেক্ষা করুন ( #613 )।
- কিপ-অ্যালাইভ RTSP অপশন রিকোয়েস্ট পাঠানোর সময়ের ব্যবধানে RTSP সেটআপ রেসপন্স টাইমআউট মান ব্যবহার করুন ( #662 )।
- এমন একটি রেসের অবস্থা ঠিক করুন যা TCP-এ ফিরে যাওয়ার সময়
- ডিকোডার এক্সটেনশন (FFmpeg, VP9, AV1, MIDI, ইত্যাদি):
- MIDI ডিকোডার মডিউলটি প্রকাশ করুন, যা অডিও সংশ্লেষিত করতে Jsyn লাইব্রেরি ব্যবহার করে স্ট্যান্ডার্ড MIDI ফাইলগুলির প্লেব্যাকের জন্য সমর্থন প্রদান করে।
- আউটপুট বাফারগুলিকে সরাসরি চিহ্নিত করতে
DecoderOutputBuffer.shouldBeSkipped
যোগ করুন যা উপস্থাপন করার প্রয়োজন নেই। এটিকেC.BUFFER_FLAG_DECODE_ONLY
থেকে অগ্রাধিকার দেওয়া হবে যা অবমূল্যায়িত হবে৷ -
Decoder.setOutputStartTimeUs
এবংSimpleDecoder.isAtLeastOutputStartTimeUs
যোগ করুন ডিকোডারগুলিকে শুরুর সময়ের আগে ডিকোড-শুধু নমুনাগুলি ড্রপ করার অনুমতি দিতে৷ এটিBuffer.isDecodeOnly
থেকে পছন্দ করা উচিত যেটি অবমূল্যায়িত হবে। - Maven সংগ্রহস্থলে MIDI ডিকোডার আর্টিফ্যাক্ট প্রকাশের বাগ ঠিক করুন। আর্টিফ্যাক্টটির নাম পরিবর্তন করে
media3-exoplayer-midi
( #734 ) রাখা হয়েছে।
- লিনব্যাক এক্সটেনশন:
- একটি সারফেস অক্ষম করার ফলে লিনব্যাক কোডে ( #617 ) একটি
ArithmeticException
ঘটতে পারে এমন বাগ ঠিক করুন।
- একটি সারফেস অক্ষম করার ফলে লিনব্যাক কোডে ( #617 ) একটি
- পরীক্ষা উপযোগিতা:
-
TestExoPlayerBuilder
এবংFakeClock
Espresso UI পরীক্ষা এবং রচনা UI পরীক্ষার সাথে সামঞ্জস্যপূর্ণ করুন। এটি একটি বাগ সংশোধন করে যেখানে প্লেব্যাক এস্প্রেসো বা কম্পোজ ভিউ ইন্টারঅ্যাকশনের সময় অ-নির্ধারকভাবে অগ্রসর হয়।
-
- অপ্রচলিত চিহ্নগুলি সরান:
-
TransformationRequest.Builder.setEnableRequestSdrToneMapping(boolean)
এবংTransformationRequest.Builder.experimental_setEnableHdrEditing(boolean)
সরান।Composition.Builder.setHdrMode(int)
ব্যবহার করুন এবং পরিবর্তেTransformer.start(Composition, String)
এComposition
পাস করুন। - অপসারিত
DownloadNotificationHelper.buildProgressNotification
পদ্ধতি সরান, একটি অপ্রচলিত পদ্ধতি ব্যবহার করুন যা পরিবর্তে একটিnotMetRequirements
প্যারামিটার নেয়।
-
সংস্করণ 1.2.0-rc01
নভেম্বর 1, 2023
1.2.0 স্থিতিশীল সংস্করণ ব্যবহার করুন।
সংস্করণ 1.2.0-beta01
অক্টোবর 19, 2023
1.2.0 স্থিতিশীল সংস্করণ ব্যবহার করুন।
সংস্করণ 1.2.0-alpha02
সেপ্টেম্বর 29, 2023
1.2.0 স্থিতিশীল সংস্করণ ব্যবহার করুন।
সংস্করণ 1.2.0-alpha01
আগস্ট 17, 2023
1.2.0 স্থিতিশীল সংস্করণ ব্যবহার করুন।
সংস্করণ 1.1.0
সংস্করণ 1.1.1
16 আগস্ট, 2023
- সাধারণ গ্রন্থাগার:
- সমস্ত মডিউল ( #499 ) থেকে দুর্ঘটনাক্রমে যোগ করা
multidex
নির্ভরতা সরান।
- সমস্ত মডিউল ( #499 ) থেকে দুর্ঘটনাক্রমে যোগ করা
- এক্সো প্লেয়ার:
-
PlaybackStatsListener
এ সমস্যাটি ঠিক করুন যেখানে প্লেলিস্ট সাফ করার পরে ভুয়াPlaybackStats
তৈরি করা হয়। - কমন মিডিয়া ক্লায়েন্ট ডেটা (CMCD) লগিং-এ অতিরিক্ত ক্ষেত্র যোগ করুন: স্ট্রিমিং ফরম্যাট (sf), স্ট্রিম টাইপ (st), ভার্সন (v), টপ বিরেট (tb), অবজেক্ট ডিউরেশন (d), মাপা থ্রুপুট (mtp) এবং অবজেক্ট টাইপ (ot) ( #8699 )।
-
- শ্রুতি:
- একটি বাগ ঠিক করুন যেখানে
Player.getState()
খুব ছোট ফাইল ( #538 ) খেলার সময়STATE_ENDED
এ রূপান্তরিত হয়নি।
- একটি বাগ ঠিক করুন যেখানে
- অডিও অফলোড:
- RFC 7845 অনুযায়ী অফলোড করা Opus প্লেব্যাকের জন্য Ogg ID হেডার এবং কমেন্ট হেডার পৃষ্ঠাগুলিকে বিটস্ট্রিমে প্রিপেন্ড করুন।
- ভিডিও:
- H.265/HEVC: SPS স্বল্প এবং দীর্ঘমেয়াদী রেফারেন্স ছবির তথ্য পার্সিং ঠিক করুন।
- পাঠ্য:
- CEA-608: শুধুমাত্র দৃশ্যমান পাঠ্য বিবেচনা করতে কিউ ট্রাঙ্কেশন লজিক পরিবর্তন করুন। পূর্বে ইন্ডেন্ট এবং ট্যাব অফসেট অন্তর্ভুক্ত করা হয়েছিল যখন কিউ দৈর্ঘ্য 32 টি অক্ষরে সীমাবদ্ধ করা হয়েছিল (যা প্রযুক্তিগতভাবে বিশেষভাবে সঠিক ছিল) ( #11019 )।
- আইএমএ এক্সটেনশন:
- IMA SDK সংস্করণকে 3.30.3 এ বাম্প করুন৷
- সেশন:
- কন্ট্রোলারের অবস্থায় কাস্টম লেআউট যোগ করুন এবং এটি অ্যাক্সেস করার জন্য একটি গেটার প্রদান করুন। কাস্টম লেআউট পরিবর্তন হলে,
MediaController.Listener.onCustomLayoutChanged
বলা হয়। যে অ্যাপগুলি বিভিন্ন Media3 কন্ট্রোলারে বিভিন্ন কাস্টম লেআউট পাঠাতে চায় তারাMediaSession.Callback.onConnect
এ একটিAcceptedResultBuilder
ব্যবহার করে কানেকশন সম্পূর্ণ হলে কাস্টম লেআউট কন্ট্রোলারের কাছে উপলব্ধ আছে কিনা তা নিশ্চিত করতে পারে৷ - যেসব ক্ষেত্রে
MediaLibraryServiceLegacyStub
একটিResult
একটি ত্রুটি পাঠিয়েছে যা এটি সমর্থন করে না যা একটিUnsupportedOperationException
( #78 ) তৈরি করেছে তা ঠিক করুন। - লিগ্যাসি কমান্ড (
COMMAND_ADJUST_DEVICE_VOLUME
এবংCOMMAND_SET_DEVICE_VOLUME
) এবং নতুনCOMMAND_SET_DEVICE_VOLUME_WITH_FLAGS
মাধ্যমেvolumeControlType
নির্ধারণ করেPlayerWrapper
একটিVolumeProviderCompat
তৈরি করার উপায় ঠিক করুনCOMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS
) ( #554 )
- কন্ট্রোলারের অবস্থায় কাস্টম লেআউট যোগ করুন এবং এটি অ্যাক্সেস করার জন্য একটি গেটার প্রদান করুন। কাস্টম লেআউট পরিবর্তন হলে,
সংস্করণ 1.1.0
5 জুলাই, 2023
- সাধারণ গ্রন্থাগার:
- অনুপযুক্ত অডিও রুটের জন্য দমন কারণ যোগ করুন এবং খুব দীর্ঘ চাপা কারণ পরিবর্তন করার জন্য প্রস্তুত হলে প্লে করুন। ( #15 )।
- প্লেয়ারে কমান্ড যোগ করুন:
-
COMMAND_GET_METADATA
-
COMMAND_SET_PLAYLIST_METADATA
-
COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS
-
COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS
-
- প্লেয়ারে ওভারলোড করা পদ্ধতি যোগ করুন যা ব্যবহারকারীদের ভলিউম ফ্ল্যাগ নির্দিষ্ট করতে দেয়:
-
void setDeviceVolume(int, int)
-
void increaseDeviceVolume(int)
-
void decreaseDeviceVolume(int)
-
void setDeviceMuted(boolean, int)
-
-
DeviceInfo
এর জন্যBuilder
যোগ করুন এবং বিদ্যমান কনস্ট্রাক্টরকে অবমূল্যায়ন করুন। - দূরবর্তী প্লেব্যাকের জন্য রাউটিং কন্ট্রোলার আইডি নির্দিষ্ট করতে
DeviceInfo.routingControllerId
যোগ করুন। -
Player.replaceMediaItem(s)
যোগ করুন একটি শর্টকাট হিসাবে একই অবস্থানে আইটেম যোগ এবং অপসারণ ( #8046 )।
- এক্সো প্লেয়ার:
- ExoPlayer-কে শুধুমাত্র ডিভাইসের ভলিউম পদ্ধতির নিয়ন্ত্রণ করার অনুমতি দিন যদি স্পষ্টভাবে অপ্ট ইন করা থাকে। এতে অ্যাক্সেস পেতে
ExoPlayer.Builder.setDeviceVolumeControlEnabled
ব্যবহার করুন:-
getDeviceVolume()
-
isDeviceMuted()
-
setDeviceVolume(int)
এবংsetDeviceVolume(int, int)
-
increaseDeviceVolume(int)
এবংincreaseDeviceVolume(int, int)
-
decreaseDeviceVolume(int)
এবংdecreaseDeviceVolume(int, int)
-
-
FilteringMediaSource
যোগ করুন যা একটিMediaSource
থেকে উপলব্ধ ট্র্যাক প্রকারগুলিকে ফিল্টার করার অনুমতি দেয়৷ - অভিযোজিত স্ট্রিমিং ফরম্যাট DASH, HLS এবং স্মুথস্ট্রিমিং-এর বহির্গামী অনুরোধগুলিতে কমন মিডিয়া ক্লায়েন্ট ডেটা (CMCD) অন্তর্ভুক্ত করার জন্য সমর্থন যোগ করুন। নিম্নলিখিত ক্ষেত্রগুলি,
br
,bl
,cid
,rtp
, এবংsid
, অন্তর্ভুক্ত করা হয়েছে ( #8699 )। API গঠন এবং API পদ্ধতি:- CMCD লগিং ডিফল্টরূপে অক্ষম থাকে, এটি সক্রিয় করতে
MediaSource.Factory.setCmcdConfigurationFactory(CmcdConfiguration.Factory cmcdConfigurationFactory)
ব্যবহার করুন৷ - সমস্ত কীগুলি ডিফল্টরূপে সক্রিয় থাকে, কোন কীগুলি লগ করা হয়েছে তা ফিল্টার করতে
CmcdConfiguration.RequestConfig.isKeyAllowed(String key)
ওভাররাইড করুন৷ - কাস্টম কী লগিং সক্ষম করতে
CmcdConfiguration.RequestConfig.getCustomData()
ওভাররাইড করুন।
- CMCD লগিং ডিফল্টরূপে অক্ষম থাকে, এটি সক্রিয় করতে
- একটি কাস্টম
*.exolist.json
ফাইল ( #439 ) দিয়ে ডেমো অ্যাপ শুরু করা সহজ করতে প্রধান ডেমোর প্রকাশে অতিরিক্ত অ্যাকশন যোগ করুন। - ভিডিও প্লেব্যাকের সময়
Effect
ব্যবহার করার জন্যExoPlayer.setVideoEffects()
যোগ করুন। - একটি
int
এর পরিবর্তেsourceId
long
হিসাবে সংরক্ষণ করতেSampleQueue
আপডেট করুন। এটি পাবলিক পদ্ধতিSampleQueue.sourceId
এবংSampleQueue.peekSourceId
এর স্বাক্ষর পরিবর্তন করে। -
LoadControl
পদ্ধতিতে প্যারামিটার যোগ করুন স্টার্টপ্লেব্যাক এবংonTracksSelected
shouldStartPlayback
যা প্রাসঙ্গিকMediaPeriod
সাথে এই পদ্ধতিগুলিকে সংযুক্ত করার অনুমতি দেয়। - একটি টাইমলাইন প্যারামিটার যোগ করে
ServerSideAdInsertionMediaSource.setAdPlaybackStates(Map<Object, AdPlaybackState>)
এর স্বাক্ষর পরিবর্তন করুন যা মানচিত্রে কী হিসাবে ব্যবহৃত UID-এর সাথে পিরিয়ড ধারণ করে। মাল্টি-পিরিয়ড লাইভ স্ট্রিমগুলির সাথে একযোগে সমস্যা এড়াতে এটি প্রয়োজন। -
EventDispatcher.withParameters(int windowIndex, @Nullable MediaPeriodId mediaPeriodId, long mediaTimeOffsetMs)
এবংBaseMediaSource.createEventDispatcher(..., long mediaTimeOffsetMs)
বাতিল করুন।mediaTimeOffsetUs
ছাড়া পদ্ধতির বৈকল্পিক পরিবর্তে কল করা যেতে পারে। মনে রাখবেন যে অবহেলিত ভেরিয়েন্টের জন্যও, অফসেটটি আর প্রেরক দ্বারা প্রেরিতMediaLoadData
অবজেক্টেরstartTimeUs
এবংendTimeUs
যোগ করা হয় না। -
ExoTrackSelection.blacklist
নাম পরিবর্তন করেexcludeTrack
এবংisTrackExcluded
এisBlacklisted
। - খালি প্লেলিস্টে কল করা হলে
ExoPlayer.setMediaItem(s)
এবংaddMediaItem(s)
এর মধ্যে অসামঞ্জস্যপূর্ণ আচরণ ঠিক করুন৷
- ExoPlayer-কে শুধুমাত্র ডিভাইসের ভলিউম পদ্ধতির নিয়ন্ত্রণ করার অনুমতি দিন যদি স্পষ্টভাবে অপ্ট ইন করা থাকে। এতে অ্যাক্সেস পেতে
- ট্রান্সফরমার:
-
Transformer.Builder.setMediaSourceFactory(MediaSource.Factory)
সরান। পরিবর্তেExoPlayerAssetLoader.Factory(MediaSource.Factory)
এবংTransformer.Builder.setAssetLoaderFactory(AssetLoader.Factory)
ব্যবহার করুন। -
Transformer.startTransformation(MediaItem, ParcelFileDescriptor)
সরান। - একটি বাগ ঠিক করুন যেখানে রূপান্তর আটকে যেতে পারে (মুক্সার টাইমআউটের দিকে নিয়ে যায়) যদি ভিডিও স্ট্রিমের সমাপ্তি মুহুর্তে সিগন্যাল করা হয় যখন একটি ইনপুট ফ্রেম প্রক্রিয়াকরণ মুলতুবি ছিল।
- সমর্থন প্রসারিত করতে
findDecoder/EncoderForFormat
ইউটিলিটিগুলি ব্যবহার করার পরিবর্তেMediaCodecList
এর মাধ্যমে কোডেক অনুসন্ধান করুন। -
DefaultEncoderFactory
বি-ফ্রেম কনফিগারেশন সরান কারণ এটি কিছু ডিভাইসে কাজ করে না।
-
- ট্র্যাক নির্বাচন:
-
DefaultTrackSelector.Parameters.allowInvalidateSelectionsForRendererCapabilitiesChange
যোগ করুন যা ডিফল্টরূপে অক্ষম থাকে। সক্রিয় করা হলে, রেন্ডারারের ক্ষমতা পরিবর্তিত হলেDefaultTrackSelector
একটি নতুন ট্র্যাক নির্বাচন ট্রিগার করবে৷
-
- নিষ্কাশনকারী:
- শ্রুতি:
- টানেলিং সক্ষম হলে এবং
AudioProcessors
সক্রিয় থাকাকালীন কিছু প্লেব্যাক ব্যর্থ হলে বাগ ঠিক করুন, যেমন ফাঁকহীন ছাঁটাইয়ের জন্য ( #10847 )। - সরাসরি প্লেব্যাকে (অফলোড) Ogg প্যাকেটে ওপাস ফ্রেমগুলিকে এনক্যাপসুলেট করুন।
- অফলোড শিডিউলিংয়ের সাথে ঘুমের সময় বর্তমান অবস্থান এক্সট্রাপোলেট করুন।
- খেলোয়াড়ের জীবনচক্রের শেষে সংস্থানগুলি প্রকাশ করার জন্য
Renderer.release()
এবংAudioSink.release()
যোগ করুন। -
DefaultAudioSink
এ অডিও ক্ষমতার পরিবর্তনগুলি শুনুন।DefaultAudioSink
এর কনস্ট্রাক্টরে একটি প্রয়োজনীয় প্যারামিটারcontext
যোগ করুন, যার সাহায্যেDefaultAudioSink
AudioCapabilitiesReceiver
এ শ্রোতা হিসাবে নিবন্ধন করবে এবং ক্ষমতা পরিবর্তনের সাথে জানানো হলে তারaudioCapabilities
বৈশিষ্ট্য আপডেট করবে। -
AudioSink.Listener
ইন্টারফেস এবংonAudioCapabilitiesChanged
যাonRendererCapabilitiesChanged
ইভেন্টগুলিতে ট্রিগার করে একটি নতুন ইন্টারফেস এRendererCapabilities.Listener
এ একটি নতুন ইভেন্টের মাধ্যমে অডিও ক্ষমতার পরিবর্তনগুলি প্রচার করুন৷ - অডিও চ্যানেলে স্কেলিং/মিক্সিং প্রয়োগ করার জন্য
ChannelMixingAudioProcessor
যোগ করুন। -
DecoderDiscardReasons
নতুন int মানDISCARD_REASON_AUDIO_BYPASS_POSSIBLE
যোগ করুনDiscardঅডিও ক্ষমতা পরিবর্তনের পরে বাইপাস মোড সম্ভব হলে অডিও ডিকোডার বাতিল করার কারণ। - DTS Express এবং DTS:X ( #335 ) এর জন্য সরাসরি প্লেব্যাক সমর্থন যোগ করুন।
- টানেলিং সক্ষম হলে এবং
- ভিডিও:
- যখন রেন্ডারার অক্ষম থাকে তখন
MediaCodecVideoRenderer
0 এর প্রস্থ এবং উচ্চতা সহ একটিVideoSize
রিপোর্ট করুন৷Player.Listener.onVideoSizeChanged
কে সেই অনুযায়ী বলা হয় যখনPlayer.getVideoSize()
পরিবর্তন হয়। এই পরিবর্তনের সাথে,MediaCodecVideoRenderer
এর সাথে ExoPlayer-এর ভিডিওর আকার 0 এর প্রস্থ এবং উচ্চতা থাকে যখনPlayer.getCurrentTracks
ভিডিও সমর্থন করে না, বা সমর্থিত ভিডিও ট্র্যাকের আকার এখনও নির্ধারণ করা হয়নি।
- যখন রেন্ডারার অক্ষম থাকে তখন
- DRM:
-
DefaultDrmSession
এ বেশ কয়েকটি অভ্যন্তরীণ-শুধু পদ্ধতির দৃশ্যমানতা হ্রাস করুন যেগুলি DRM প্যাকেজের বাইরে থেকে কল করার আশা করা হয় না:-
void onMediaDrmEvent(int)
-
void provision()
-
void onProvisionCompleted()
-
onProvisionError(Exception, boolean)
-
-
- মুক্সার:
- একটি নতুন মুক্সার লাইব্রেরি যোগ করুন যা একটি MP4 কন্টেইনার ফাইল তৈরি করতে ব্যবহার করা যেতে পারে।
- আইএমএ এক্সটেনশন:
- DAI-এর জন্য মাল্টি-পিরিয়ড লাইভ DASH স্ট্রিমগুলি সক্ষম করুন৷ অনুগ্রহ করে মনে রাখবেন যে বর্তমান বাস্তবায়ন এখনও লাইভ স্ট্রীম ( #10912 ) এ খোঁজা সমর্থন করে না।
- লাইভ স্ট্রিমগুলিতে একটি নতুন বিজ্ঞাপন গোষ্ঠী সন্নিবেশিত করা হয়েছে এমন একটি বাগ ঠিক করুন কারণ পরপর টাইমলাইনে গণনা করা সামগ্রীর অবস্থান সামান্য পরিবর্তিত হয়।
- সেশন:
- সাহায্যকারী পদ্ধতি যোগ করুন
MediaSession.getControllerForCurrentRequest
যে কন্ট্রোলারটি বর্তমানেPlayer
পদ্ধতিতে কল করছে সে সম্পর্কে তথ্য পেতে। -
androidx.media3.session.MediaButtonReceiver
যোগ করুন যাতে পাঠানো মিডিয়া বোতাম ইভেন্টগুলির মাধ্যমে প্লেব্যাক পুনঃসূচনা কার্যকর করতে অ্যাপ্লিকেশনগুলিকে সক্ষম করতে, উদাহরণস্বরূপ, একটি ব্লুটুথ হেডসেট ( #167 )৷ -
MediaSession.Callback.onAddMediaItems
এ ডিফল্ট বাস্তবায়ন যোগ করুন যাতে অনুরোধ করাMediaItems
Player
পাস করার অনুমতি দেয় যদি তাদেরLocalConfiguration
থাকে (যেমন URI) ( #282 )। - অ্যান্ড্রয়েড 12 এবং নীচের ( #410 ) জন্য ডিফল্টরূপে কমপ্যাক্ট মিডিয়া বিজ্ঞপ্তি ভিউতে "পূর্ববর্তীতে অনুসন্ধান করুন" এবং "পরবর্তীতে অনুসন্ধান করুন" কমান্ড বোতামগুলি যুক্ত করুন।
-
MediaSession.Callback.onAddMediaItems
এ ডিফল্ট বাস্তবায়ন যোগ করুন যাতে অনুরোধ করাMediaItems
Player
পাস করার অনুমতি দেয় যদি তাদেরLocalConfiguration
থাকে (যেমন URI) ( #282 )। - অ্যান্ড্রয়েড 12 এবং নীচের ( #410 ) জন্য ডিফল্টরূপে কমপ্যাক্ট মিডিয়া বিজ্ঞপ্তি ভিউতে "পূর্ববর্তীতে অনুসন্ধান করুন" এবং "পরবর্তীতে অনুসন্ধান করুন" কমান্ড বোতামগুলি যুক্ত করুন।
- সাহায্যকারী পদ্ধতি যোগ করুন
- UI:
- একটি প্লে/পজ বোতামের সাহায্যে কাস্টম UI উপাদানগুলি লিখতে Util পদ্ধতিগুলি যোগ করুন
shouldShowPlayButton
এবংhandlePlayPauseButtonAction
।
- একটি প্লে/পজ বোতামের সাহায্যে কাস্টম UI উপাদানগুলি লিখতে Util পদ্ধতিগুলি যোগ করুন
- RTSP এক্সটেনশন:
- ড্যাশ এক্সটেনশন:
- মাল্টি পিরিয়ড DASH স্ট্রীমগুলির জন্য
MediaLoadData.startTimeMs
এবংMediaLoadData.endTimeMs
থেকে মিডিয়া টাইম অফসেট সরান৷ - একটি বাগ ঠিক করুন যেখানে একটি মাল্টি-পিরিয়ড লাইভ ড্যাশ মিডিয়া সোর্স পুনরায় প্রস্তুত করার ফলে একটি
IndexOutOfBoundsException
( #10838 ) তৈরি হয়।
- মাল্টি পিরিয়ড DASH স্ট্রীমগুলির জন্য
- HLS এক্সটেনশন:
-
HlsMediaSource.Factory.setTimestampAdjusterInitializationTimeoutMs(long)
যোগ করুন লোডিং থ্রেডেরTimestampAdjuster
শুরু হওয়ার জন্য অপেক্ষা করার জন্য একটি সময়সীমা সেট করতে। যদি টাইমআউটের আগে আরম্ভ করা সম্পূর্ণ না হয়, তাহলে প্লেব্যাকের অন্তহীন স্টল এড়াতে একটিPlaybackException
নিক্ষেপ করা হয়। টাইমআউট ডিফল্টরূপে শূন্য সেট করা হয় ( #323 )।
-
- পরীক্ষা উপযোগিতা:
-
DataSourceContractTest
এ URI স্কিমের ক্ষেত্রে অসংবেদনশীলতা পরীক্ষা করুন।
-
- অপ্রচলিত চিহ্নগুলি সরান:
-
DefaultAudioSink
কনস্ট্রাক্টর সরান, পরিবর্তেDefaultAudioSink.Builder
ব্যবহার করুন। -
HlsMasterPlaylist
সরান, পরিবর্তেHlsMultivariantPlaylist
ব্যবহার করুন। -
Player.stop(boolean)
সরান। পরিবর্তেPlayer.stop()
এবংPlayer.clearMediaItems()
(যদিreset
true
হয়) ব্যবহার করুন। - দুটি অবচয়িত
SimpleCache
কনস্ট্রাক্টর সরান, একটি অ-বঞ্চিত কনস্ট্রাক্টর ব্যবহার করুন যা আরও ভাল পারফরম্যান্সের জন্য পরিবর্তে একটিDatabaseProvider
নেয়। -
DefaultBandwidthMeter
কনস্ট্রাক্টর সরান, পরিবর্তেDefaultBandwidthMeter.Builder
ব্যবহার করুন। -
DefaultDrmSessionManager
কনস্ট্রাক্টর সরান, পরিবর্তেDefaultDrmSessionManager.Builder
ব্যবহার করুন। - দুটি অবচয়িত
HttpDataSource.InvalidResponseCodeException
কনস্ট্রাক্টর সরান, একটি অ-বঞ্চিত কনস্ট্রাক্টর ব্যবহার করুন যা ত্রুটি লগিং উন্নত করতে অতিরিক্ত ক্ষেত্র (cause
,responseBody
) গ্রহণ করে৷ -
DownloadHelper.forProgressive
,DownloadHelper.forHls
,DownloadHelper.forDash
এবংDownloadHelper.forSmoothStreaming
সরান, পরিবর্তেDownloadHelper.forMediaItem
ব্যবহার করুন। - অবচয়িত
DownloadService
কনস্ট্রাক্টর সরান, একটি অপ্রচলিত কনস্ট্রাক্টর ব্যবহার করুন যাতে একটিchannelDescriptionResourceId
প্যারামিটার প্রদান করার বিকল্প রয়েছে। -
com.google.common.base.Charsets
(ASCII_NAME
,UTF8_NAME
,ISO88591_NAME
,UTF16_NAME
এবংUTF16LE_NAME
) জন্য অপ্রচলিত স্ট্রিং ধ্রুবকগুলি সরান ,kotlin.text
প্যাকেজ থেকে Kotlin Charsets ব্যবহার করুন,java.nio.charset.StandardCharsets
- অবচয়িত
WorkManagerScheduler
কনস্ট্রাক্টর সরান, একটি অপ্রত্যাশিত কনস্ট্রাক্টর ব্যবহার করুন যার পরিবর্তে একটিContext
প্যারামিটার প্রদান করার বিকল্প রয়েছে। - ক্রিয়েট
createVideoSampleFormat
,createAudioSampleFormat
,createContainerFormat
, এবংcreateSampleFormat
, যেগুলিFormat
শ্রেণীকে ইনস্ট্যান্টিয়েট করতে ব্যবহৃত হয়েছিল সেগুলি সরান৷ পরিবর্তেFormat
উদাহরণ তৈরি করার জন্যFormat.Builder
ব্যবহার করুন। - অপসারিত পদ্ধতিগুলি সরিয়ে দিন
copyWithMaxInputSize
,copyWithSubsampleOffsetUs
,copyWithLabel
,copyWithManifestFormatInfo
,copyWithGaplessInfo
,copyWithFrameRate
,copyWithDrmInitData
, copyWithMetadata ,copyWithMetadata
,copyWithBitrate
,Format.buildUpon()
এবং পরিবর্তেcopyWithVideoSize
পদ্ধতি। - অপসারিত
ExoPlayer.retry()
মুছে ফেলুন, এর পরিবর্তেprepare()
ব্যবহার করুন। - অপ্রচলিত শূন্য-আর্গ
DefaultTrackSelector
কনস্ট্রাক্টর সরান, পরিবর্তেDefaultTrackSelector(Context)
ব্যবহার করুন। - অপসারিত
OfflineLicenseHelper
কনস্ট্রাক্টর সরান, পরিবর্তেOfflineLicenseHelper(DefaultDrmSessionManager, DrmSessionEventListener.EventDispatcher)
ব্যবহার করুন৷ - অপসারিত
DownloadManager
কনস্ট্রাক্টর সরান, এর পরিবর্তে একটিExecutor
নেওয়া কনস্ট্রাক্টর ব্যবহার করুন। - অপ্রচলিত
Cue
কনস্ট্রাক্টর সরান, পরিবর্তেCue.Builder
ব্যবহার করুন। - অপসারিত
OfflineLicenseHelper
কনস্ট্রাক্টর সরান, পরিবর্তেOfflineLicenseHelper(DefaultDrmSessionManager, DrmSessionEventListener.EventDispatcher)
ব্যবহার করুন৷ - চারটি অপ্রচলিত
AnalyticsListener
পদ্ধতি সরান:-
onDecoderEnabled
, পরিবর্তেonAudioEnabled
এবং/অথবাonVideoEnabled
ব্যবহার করুন। -
onDecoderInitialized
,onAudioDecoderInitialized
এবং/অথবাonVideoDecoderInitialized
ব্যবহার করুন। -
onDecoderInputFormatChanged
,onAudioInputFormatChanged
এবং/অথবাonVideoInputFormatChanged
ব্যবহার করুন। -
onDecoderDisabled
,onAudioDisabled
এবং/অথবাonVideoDisabled
ব্যবহার করুন।
-
- বাতিল করা
Player.Listener.onSeekProcessed
এবংAnalyticsListener.onSeekProcessed
সরান, পরিবর্তেDISCONTINUITY_REASON_SEEK
এর সাথেonPositionDiscontinuity
ব্যবহার করুন। -
ExoPlayer.setHandleWakeLock(boolean)
সরান, পরিবর্তেsetWakeMode(int)
ব্যবহার করুন। - অপসারিত
DefaultLoadControl.Builder.createDefaultLoadControl()
সরান, পরিবর্তেbuild()
ব্যবহার করুন। - অপসারিত
MediaItem.PlaybackProperties
সরান, পরিবর্তেMediaItem.LocalConfiguration
ব্যবহার করুন৷ অপ্রচলিত ক্ষেত্রMediaItem.playbackProperties
এখনMediaItem.LocalConfiguration
টাইপের।
-
সংস্করণ 1.1.0-rc01
জুন 21, 2023
1.1.0 স্থিতিশীল সংস্করণ ব্যবহার করুন।
সংস্করণ 1.1.0-beta01
7 জুন, 2023
1.1.0 স্থিতিশীল সংস্করণ ব্যবহার করুন।
সংস্করণ 1.1.0-alpha01
10 মে, 2023
1.1.0 স্থিতিশীল সংস্করণ ব্যবহার করুন।
সংস্করণ 1.0.0
সংস্করণ 1.0.2
18 মে, 2023
androidx.media3:media3-*:1.0.2
প্রকাশিত হয়েছে। সংস্করণ 1.0.2 এই কমিট ধারণ করে.
এই রিলিজটি ExoPlayer 2.18.7 রিলিজের সাথে মিলে যায়।
এই রিলিজে 1.0.1 প্রকাশের পর থেকে নিম্নলিখিত পরিবর্তনগুলি রয়েছে:
- মূল গ্রন্থাগার:
-
Buffer.isLastSample()
যোগ করুন যা বোঝায় যদিBuffer
ফ্ল্যাগC.BUFFER_FLAG_LAST_SAMPLE
থাকে। - 'স্ট্রিমের শেষ' নমুনা না পড়ে ফ্রেমের সাথে শেষ নমুনাটি সারিবদ্ধ থাকলে যেখানে শেষ ফ্রেম রেন্ডার নাও হতে পারে সেই সমস্যার সমাধান করুন। ( #11079 )।
-
- নিষ্কাশনকারী:
- RTSP এবং MP4 এক্সট্র্যাক্টর ( #303 ) দ্বারা ইতিমধ্যে ব্যবহৃত পার্সিং লজিক পুনরায় ব্যবহার করে MPEG-TS ফাইলগুলিতে H.265 SPS-এর পার্সিং ঠিক করুন।
- পাঠ্য:
- SSA: UTF-16 ফাইলগুলির জন্য সমর্থন যোগ করুন যদি তারা একটি বাইট অর্ডার চিহ্ন দিয়ে শুরু করে ( #319 )।
- সেশন:
- একটি লিগ্যাসি
MediaSessionCompat
এর সাথে সংযুক্ত থাকাকালীন যেখানেMediaController
এর উপলব্ধ কমান্ডগুলি আপডেট করে না যেখানে এটির ক্রিয়াগুলি আপডেট করে সেই সমস্যাটি সমাধান করুন৷ - বাগ সংশোধন করুন যা
MediaLibraryService
সিস্টেম UI থেকেCallback.onGetLibraryRoot
এparams.isRecent == true
API 30 ( #355 ) এ সত্যের সাথে একটি কলের জন্য নাল ফেরাতে বাধা দেয়। -
MediaSessionService
বাMediaLibraryService
( #346 ) এর মেমরি লিক ঠিক করুন। - একটি
MediaSession
এ একটি সম্মিলিতTimeline
এবং অবস্থান আপডেট একটিMediaController
একটিIllegalStateException
নিক্ষেপের কারণ হতে পারে এমন বাগ ঠিক করুন।
- একটি লিগ্যাসি
সংস্করণ 1.0.1
18 এপ্রিল, 2023
androidx.media3:media3-*:1.0.1
প্রকাশিত হয়েছে। সংস্করণ 1.0.1 এই কমিট ধারণ করে.
এই রিলিজটি ExoPlayer 2.18.6 রিলিজের সাথে মিলে যায়।
- মূল গ্রন্থাগার:
- ডিফল্ট অবস্থানে যাওয়ার সময় লক্ষ্য লাইভ স্ট্রিম ওভাররাইড রিসেট করুন ( #11051 )।
- মিডিয়াতে খালি নমুনা স্ট্রীম প্লেব্যাক আটকে যেতে পারে এমন বাগ ঠিক করুন।
- সেশন:
- একটি লিগ্যাসি
MediaSessionCompat
দ্বারা প্রকাশিত একাধিক অভিন্ন সারি আইটেম যেখানেMediaController
( #290 ) এ একটি ব্যতিক্রম দেখায় সেখানে বাগ ঠিক করুন। - উত্তরাধিকার
MediaControllerCompat.Callback.onSessionEvent
( #293 ) এMediaSession.broadcastCustomCommand
এর অনুপস্থিত ফরওয়ার্ডিং যোগ করুন। - যেখানে
MediaSession.setPlayer
কল করা উপলব্ধ কমান্ড আপডেট করে না সেখানে বাগ ঠিক করুন। - একটি
MediaController
থেকে প্রেরিতTrackSelectionOverride
দৃষ্টান্তগুলি যদিFormat.metadata
( #296 ) সহ একটি গোষ্ঠীর উল্লেখ করলে তা উপেক্ষা করা হয় এমন সমস্যার সমাধান করুন৷ - যেখানে
Player.COMMAND_GET_CURRENT_MEDIA_ITEM
লিগ্যাসিMediaSessionCompat
এর মাধ্যমে মেটাডেটা অ্যাক্সেস করার জন্য উপলব্ধ থাকা প্রয়োজন সেখানে সমস্যাটি সমাধান করুন। - একটি ব্যাকগ্রাউন্ড থ্রেডে
MediaSession
দৃষ্টান্তগুলিMediaSessionService
( #318 ) এ ব্যবহার করার সময় ক্র্যাশ করে এমন সমস্যার সমাধান করুন। - একটি মিডিয়া বোতাম রিসিভার অ্যাপটি উদ্দেশ্য না করেই লাইব্রেরি দ্বারা ঘোষণা করা হয়েছে এমন সমস্যাটি ঠিক করুন ( #314 )।
- একটি লিগ্যাসি
- ড্যাশ:
- খালি সেগমেন্ট টাইমলাইনগুলির হ্যান্ডলিং ঠিক করুন ( #11014 )।
- RTSP:
- RTSP Error 461 UnsupportedTransport ( #11069 ) এর সাথে UDP এর সাথে RTSP সেটআপ ব্যর্থ হলে TCP দিয়ে পুনরায় চেষ্টা করুন।
সংস্করণ 1.0.0
22 মার্চ, 2023
androidx.media3:media3-*:1.0.0
প্রকাশিত হয়েছে। সংস্করণ 1.0.0 এই কমিট ধারণ করে.
এই রিলিজটি ExoPlayer 2.18.5 রিলিজের সাথে মিলে যায়।
1.0.0-rc02 থেকে কোন পরিবর্তন নেই।
সংস্করণ 1.0.0-rc02
2 মার্চ, 2023
androidx.media3:media3-*:1.0.0-rc02
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-rc02 এই কমিট ধারণ করে।
এই রিলিজটি ExoPlayer 2.18.4 রিলিজের সাথে মিলে যায়।
- মূল গ্রন্থাগার:
- ডাউনলোড:
-
SegmentDownloader
এবং সাবক্লাসে ( #248 ) কনফিগারযোগ্য মার্জ করার জন্য দুটি সেগমেন্টের শুরুর সময়ের সর্বাধিক পার্থক্য করুন।
-
- শ্রুতি:
- ভিডিও:
-
HEVCProfileMain10
এর পরিবর্তে HEVC HDR10 বিন্যাসHEVCProfileMain10HDR10
এ ম্যাপ করুন। - Google TV এবং Lenovo M10 FHD Plus-এর সাথে Chromecast-এ ডিভাইস সংক্রান্ত সমস্যার সমাধান যোগ করুন যার ফলে 60fps AVC স্ট্রীমগুলি অসমর্থিত হিসাবে চিহ্নিত হয় ( #10898 )।
- স্ক্রীন রিফ্রেশ রেট থেকে অনেক বেশি ফ্রেম রেট সহ মিডিয়া প্লে করার সময় ফ্রেম রিলিজ কর্মক্ষমতা সমস্যাগুলি ঠিক করুন৷
-
- কাস্ট:
- মিডিয়া আইটেমগুলির মধ্যে স্থানান্তর করার সময় ক্ষণস্থায়ী
STATE_IDLE
ঠিক করুন ( #245 )।
- মিডিয়া আইটেমগুলির মধ্যে স্থানান্তর করার সময় ক্ষণস্থায়ী
- RTSP:
- অবৈধ আরটিএসপির পার্সিংয়ে নিক্ষিপ্ত IllegalArgumentException ধরুন প্রতিক্রিয়া বার্তা বর্ণনা করুন ( #10971 )।
- সেশন:
- একটি বাগ ঠিক করুন যেখানে নোটিফিকেশন প্লে/পজ বোতাম প্লেয়ার স্টেট ( #192 ) এর সাথে আপডেট হয় না।
- আইএমএ এক্সটেনশন:
- একটি বাগ ঠিক করুন যা কোনো বিজ্ঞাপন ছাড়াই DAI স্ট্রিমগুলিকে শুরু হতে বাধা দেয় কারণ প্রথমটি (এবং শুধুমাত্র বিজ্ঞাপন ছাড়াই)
LOADED
ইভেন্টটি পাওয়া যায়নি৷
- একটি বাগ ঠিক করুন যা কোনো বিজ্ঞাপন ছাড়াই DAI স্ট্রিমগুলিকে শুরু হতে বাধা দেয় কারণ প্রথমটি (এবং শুধুমাত্র বিজ্ঞাপন ছাড়াই)
সংস্করণ 1.0.0-rc01
ফেব্রুয়ারী 16, 2023
androidx.media3:media3-*:1.0.0-rc01
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-rc01 এই কমিট ধারণ করে।
এই রিলিজটি ExoPlayer 2.18.3 রিলিজের সাথে মিলে যায়।
- মূল গ্রন্থাগার:
-
MediaCodecSelector
এর পছন্দগুলি বজায় রাখার জন্য রেন্ডারারের ডিকোডার অর্ডারিং লজিককে টুইক করুন, এমনকি একটি ডিকোডার রিপোর্ট করলেও এটি কার্যকরীভাবে মিডিয়া চালাতে সক্ষম নাও হতে পারে। উদাহরণস্বরূপ ডিফল্ট নির্বাচকের সাথে, শুধুমাত্র কার্যকরী সমর্থন সহ হার্ডওয়্যার ডিকোডারকে সফ্টওয়্যার ডিকোডারের চেয়ে পছন্দ করা হবে যা সম্পূর্ণরূপে ফর্ম্যাট সমর্থন করে ( #10604 )। -
ExoPlayer.Builder.setPlaybackLooper
যোগ করুন যা একটি নতুন ExoPlayer উদাহরণের জন্য একটি পূর্ব-বিদ্যমান প্লেব্যাক থ্রেড সেট করে৷ - ডাউনলোড ম্যানেজার সাহায্যকারীদের সাফ করার অনুমতি দিন ( #10776 )।
-
BasePlayer.seekTo
এ পরামিতি যোগ করুন যাতে অনুসন্ধানের জন্য ব্যবহৃত কমান্ড নির্দেশ করে। - API 21+ ( #220 ) তে অঙ্কনযোগ্য লোড করার সময় থিম ব্যবহার করুন।
-
ConcatenatingMediaSource2
যোগ করুন যা একাধিক মিডিয়া আইটেমকে একক উইন্ডোতে একত্রিত করার অনুমতি দেয় ( #247 )।
-
- নিষ্কাশনকারী:
- একটি
NullPointerException
এর পরিবর্তে একটিParserException
নিক্ষেপ করুন যদি ট্র্যাক পরমাণু পার্স করার সময় নমুনা টেবিল (stbl) একটি প্রয়োজনীয় নমুনা বিবরণ (stsd) অনুপস্থিত থাকে। - fMP4 ( #10941 ) এ সরাসরি সিঙ্ক ফ্রেমে খোঁজার সময় সঠিকভাবে নমুনাগুলি এড়িয়ে যান।
- একটি
- শ্রুতি:
- সরাসরি প্লেব্যাকে (পাসথ্রু)
AudioTrack
জন্য ন্যূনতম বাফার আকার গণনা করতে সংকুচিত অডিও বিন্যাস বিটরেট ব্যবহার করুন।
- সরাসরি প্লেব্যাকে (পাসথ্রু)
- পাঠ্য:
- যদি একটি সাবটাইটেল ফাইলে কোন সংকেত না থাকে তাহলে
TextRenderer
Subtitle.getEventTime
এ একটি অবৈধ (নেতিবাচক) সূচক পাস করার সমাধান করুন। - SubRip: UTF-16 ফাইলগুলির জন্য সমর্থন যোগ করুন যদি তারা একটি বাইট অর্ডার চিহ্ন দিয়ে শুরু করে।
- যদি একটি সাবটাইটেল ফাইলে কোন সংকেত না থাকে তাহলে
- মেটাডেটা:
- ID3 v2.4 দ্বারা অনুমোদিত, ID3 ফ্রেম থেকে একাধিক নাল-বিচ্ছিন্ন মান পার্স করুন।
- মেটাডেটা দ্বারা বর্ণিত বিষয়বস্তুর ধরন বা ফোল্ডারের ধরন বোঝাতে
MediaMetadata.mediaType
যোগ করুন। -
MediaMetadata.folderType
এর প্রতিস্থাপন হিসাবেMediaMetadata.isBrowsable
যোগ করুন। পরবর্তী রিলিজে ফোল্ডারের ধরনটি বাতিল করা হবে।
- ড্যাশ:
- টাইল গণনা সহ চিত্র অভিযোজন সেটের জন্য সম্পূর্ণ পার্সিং যোগ করুন ( #3752 )।
- UI:
- সেশন:
- কাস্টম প্লেয়ারদের জন্য
Player
ইন্টারফেস বাস্তবায়নে সহায়তা করতে বিমূর্তSimpleBasePlayer
যোগ করুন। - প্ল্যাটফর্ম সেশন টোকেনকে Media3
SessionToken
( #171 ) এ রূপান্তর করতে সহায়ক পদ্ধতি যোগ করুন। - প্ল্যাটফর্ম মিডিয়া সেশনের আপডেটগুলি ট্রিগার করতে
onMediaMetadataChanged
ব্যবহার করুন ( #219 )। -
DefaultMediaNotificationProvider
এরgetMediaButtons()
এর একটি যুক্তি হিসাবে মিডিয়া সেশন যোগ করুন এবং স্পষ্টতার জন্য অপরিবর্তনীয় তালিকা ব্যবহার করুন ( #216 )। - প্লেয়ার ( #156 ) এ সেট করার আগে সেশন অনুসারে সূচী এবং অবস্থান শুরু করা
MediaItem
তালিকা সংশোধন/সেট করার উপায় প্রদান করতেonSetMediaItems
কলব্যাক শ্রোতা যোগ করুন। - নন-ব্লুটুথ মিডিয়া বোতাম ইভেন্টগুলির জন্য ডবল ট্যাপ সনাক্তকরণ এড়িয়ে চলুন ( #233 )।
- একটি ছায়াময় উত্তরাধিকার সেশন অবস্থার ক্ষেত্রে
QueueTimeline
আরও শক্তিশালী করুন ( #241 )।
- কাস্টম প্লেয়ারদের জন্য
- মেটাডেটা:
- ID3 v2.4 দ্বারা অনুমোদিত, ID3 ফ্রেম থেকে একাধিক নাল-বিচ্ছিন্ন মান পার্স করুন।
- মেটাডেটা দ্বারা বর্ণিত বিষয়বস্তুর ধরন বা ফোল্ডারের ধরন বোঝাতে
MediaMetadata.mediaType
যোগ করুন। -
MediaMetadata.folderType
এর প্রতিস্থাপন হিসাবেMediaMetadata.isBrowsable
যোগ করুন। পরবর্তী রিলিজে ফোল্ডারের ধরনটি বাতিল করা হবে।
- কাস্ট এক্সটেনশন:
- 21.2.0-এ কাস্ট SDK সংস্করণকে বাম্প করুন।
- আইএমএ এক্সটেনশন:
- থ্রেডিং সমস্যা এড়াতে অ্যাপ্লিকেশন থ্রেডে
ImaServerSideAdInsertionMediaSource
এর প্লেয়ার লিসেনারকে সরিয়ে দিন। - টিভি ডিভাইসে স্কিপ বোতামে ফোকাস করার অনুরোধ করার জন্য
ImaServerSideAdInsertionMediaSource.AdsLoader.Builder
এ যখন উপলব্ধ একটি প্রপার্টিfocusSkipButtonWhenAvailable
যোগ করুন এবং এটিকে ডিফল্টরূপে সত্যে সেট করুন৷ -
ImaServerSideAdInsertionMediaSource.AdsLoader
এ একটি পদ্ধতিfocusSkipButton()
যোগ করুন প্রোগ্রাম্যাটিকভাবে স্কিপ বোতামে ফোকাস করার অনুরোধ করতে। - IMA SDK সংস্করণকে 3.29.0 এ বাম্প করুন৷
- থ্রেডিং সমস্যা এড়াতে অ্যাপ্লিকেশন থ্রেডে
- ডেমো অ্যাপ:
- রানটাইমে বিজ্ঞপ্তি ডাউনলোড করার জন্য বিজ্ঞপ্তির অনুমতির অনুরোধ করুন ( #10884 )।
সংস্করণ 1.0.0-beta03
নভেম্বর 22, 2022
androidx.media3:media3-*:1.0.0-beta03
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-beta03 এই কমিট ধারণ করে।
এই রিলিজটি ExoPlayer 2.18.2 রিলিজের সাথে মিলে যায়।
- মূল গ্রন্থাগার:
- বর্তমানে নির্বাচিত ট্র্যাকগুলির জন্য টানেলিং সক্ষম হয়েছে কিনা তা পরীক্ষা করতে
ExoPlayer.isTunnelingEnabled
যোগ করুন ( #2518 )। - একটি একক
MediaSource
( #7279 ) মোড়ানো সহজ করতেWrappingMediaSource
যোগ করুন। - অপর্যাপ্ত উপলব্ধ মেমরির কারণে প্লেব্যাক আটকে যাওয়ার আগে ব্যাক বাফার বাতিল করুন।
- অফলোড সক্ষম হলে ট্রেসিং "doSomeWork" ব্লকটি বন্ধ করুন৷
-
PlaybackStatsListener
( #180 ) এ দ্রুত অনুসন্ধানের সাথে সেশন ট্র্যাকিং সমস্যা সমাধান করুন। - একটি একক-আইটেম প্লেলিস্ট ( #10667 ) এ
seekToNext
বাseekToPrevious
কল করার সময় অনুপস্থিতonMediaItemTransition
কলব্যাক পাঠান। -
Player.getSurfaceSize
যোগ করুন যা ভিডিওটি রেন্ডার করা হয়েছে এমন পৃষ্ঠের আকার প্রদান করে। - প্লেয়ার রিলিজের সময় শ্রোতাদের অপসারণ করার ফলে একটি
IllegalStateException
( #10758 ) হতে পারে এমন ত্রুটির সমাধান করুন৷
- বর্তমানে নির্বাচিত ট্র্যাকগুলির জন্য টানেলিং সক্ষম হয়েছে কিনা তা পরীক্ষা করতে
- নির্মাণ:
- সংকলন ত্রুটিগুলি এড়াতে সর্বনিম্ন
compileSdkVersion
প্রয়োগ করুন ( #10684 )। - অন্য গ্রেডল বিল্ডে অন্তর্ভুক্ত করার সময় প্রকাশনা ব্লক এড়িয়ে চলুন।
- সংকলন ত্রুটিগুলি এড়াতে সর্বনিম্ন
- ট্র্যাক নির্বাচন:
- ডিসপ্লে সমর্থন না করলে ডলবি ভিশনে অন্যান্য ট্র্যাক পছন্দ করুন। ( #8944 )।
- ডাউনলোড:
- ভিডিও:
- ডলবি ভিশনের বিকল্প ডিকোডার ব্যবহার করে দেখুন যদি ডিসপ্লে সমর্থন না করে। ( #9794 )।
- শ্রুতি:
- একই সময়ে একাধিক প্লেয়ার রিলিজ করার সময় OutOfMemory ত্রুটি এড়াতে
AudioTrack
দৃষ্টান্ত প্রকাশের জন্যSingleThreadExecutor
ব্যবহার করুন ( #10057 )। - অডিওট্র্যাক অফলোড অবস্থার জন্য
AudioOffloadListener.onExperimentalOffloadedPlayback
যোগ করে। ( #134 )। -
AudioTrackBufferSizeProvider
একটি সর্বজনীন ইন্টারফেস করুন। - পছন্দের অডিও আউটপুট ডিভাইস সেট করতে
ExoPlayer.setPreferredAudioDevice
যোগ করুন ( #135 )। -
androidx.media3.exoplayer.audio.AudioProcessor
এর নাম পরিবর্তন করেandroidx.media3.common.audio.AudioProcessor
করুন। - সমস্ত অ্যান্ড্রয়েড সংস্করণে ( #10701 ) যথাক্রমে 7.1 এবং 7.1.4 চ্যানেল মাস্কে 8-চ্যানেল এবং 12-চ্যানেল অডিও ম্যাপ করুন।
- একই সময়ে একাধিক প্লেয়ার রিলিজ করার সময় OutOfMemory ত্রুটি এড়াতে
- মেটাডেটা:
-
MetadataRenderer
এখন মেটাডেটা উপলব্ধ হওয়ার সাথে সাথে রেন্ডার করার জন্য কনফিগার করা যেতে পারে।MetadataRenderer(MetadataOutput, Looper, MetadataDecoderFactory, boolean)
দিয়ে একটি উদাহরণ তৈরি করুন রেন্ডারার মেটাডেটা প্রথম দিকে আউটপুট করবে নাকি প্লেয়ার পজিশনের সাথে সিঙ্ক করবে।
-
- DRM:
- অ্যান্ড্রয়েড 13 ক্লিয়ারকি বাস্তবায়নে একটি বাগ নিয়ে কাজ করুন যা একটি অ-খালি কিন্তু অবৈধ লাইসেন্স URL প্রদান করে।
-
setMediaDrmSession failed: session not opened
ত্রুটি (যেমন Widevine থেকে ClearKey)।
- পাঠ্য:
- CEA-608: ফিল্ড 2-এ পরিষেবা সুইচ কমান্ডগুলি সঠিকভাবে পরিচালনা করা হয়েছে তা নিশ্চিত করুন ( #10666 )।
- ড্যাশ:
- ম্যানিফেস্ট ( #10460 ) থেকে
EventStream.presentationTimeOffset
পার্স করুন।
- ম্যানিফেস্ট ( #10460 ) থেকে
- UI:
-
TrackSelectionDialogBuilder
( #10429 ) এ প্রিসেট হিসাবে প্লেয়ারের বর্তমান ওভাররাইড ব্যবহার করুন।
-
- সেশন:
- কিছুর জন্য অ্যাসিঙ্ক্রোনাস রেজোলিউশনের ( #85 ) প্রয়োজন হলেও কমান্ডগুলি সর্বদা সঠিক ক্রমে চালানো হয় তা নিশ্চিত করুন।
-
DefaultMediaNotificationProvider
দৃষ্টান্ত তৈরি করতেDefaultMediaNotificationProvider.Builder
যোগ করুন। নির্মাতা বিজ্ঞপ্তি আইডি, বিজ্ঞপ্তি চ্যানেল আইডি এবং প্রদানকারীর দ্বারা ব্যবহৃত বিজ্ঞপ্তি চ্যানেলের নাম কনফিগার করতে পারে। এছাড়াও, বিজ্ঞপ্তি ছোট আইকন সেট করতেDefaultMediaNotificationProvider.setSmallIcon(int)
পদ্ধতি যোগ করুন। ( #104 )। - নিশ্চিত করুন
MediaController.release()
এর আগে পাঠানো কমান্ডগুলি বাদ দেওয়া হয় না ( #99 )। -
SimpleBitmapLoader
file://
URIs ( #108 ) থেকে বিটম্যাপ লোড করতে পারে। - এমন দাবি ঠিক করুন যা
MediaController
একটি নির্দিষ্ট সময়ের মধ্যে বিজ্ঞাপন খুঁজতে বাধা দেয় ( #122 )। - প্লেব্যাক শেষ হয়ে গেলে,
MediaSessionService
ফোরগ্রাউন্ড থেকে বন্ধ হয়ে যায় এবং সর্বশেষ প্লে করা মিডিয়া আইটেমটির প্লেব্যাক পুনরায় চালু করার জন্য একটি বিজ্ঞপ্তি দেখানো হয় ( #112 )। - বিরতির জন্য একটি মুলতুবি অভিপ্রায় সহ একটি অগ্রভাগের পরিষেবা শুরু করবেন না ( #167 )।
- API 26 এবং API 27-এ
DefaultNotificationProvider
দ্বারা তৈরি বিজ্ঞপ্তির সাথে যুক্ত 'ব্যাজ' ম্যানুয়ালি লুকান (ব্যাজটি API 28+ এ স্বয়ংক্রিয়ভাবে লুকানো হয়) ( #131 )। - বাগ ঠিক করুন যেখানে একটি লিগ্যাসি MediaSession থেকে একটি Media3 MediaController-এর সাথে দ্বিতীয় বাইন্ডার সংযোগের কারণে IllegalStateExceptions ( #49 ) হয়।
- RTSP:
- আইএমএ:
- IMA SDK বিজ্ঞাপন লোড করার সময় আটকে যায় এমন ক্ষেত্রে পরিচালনা করতে বিজ্ঞাপনের তথ্য লোড করার সময়সীমা যোগ করুন ( #10510 )।
- বিষয়বস্তুর শেষ পর্যন্ত খোঁজার সময় মিড-রোল বিজ্ঞাপনগুলি এড়িয়ে যাওয়া প্রতিরোধ করুন ( #10685 )।
- সার্ভার-সাইড সন্নিবেশিত বিজ্ঞাপন সহ লাইভ স্ট্রিমগুলির জন্য উইন্ডোর সময়কাল সঠিকভাবে গণনা করুন, উদাহরণস্বরূপ IMA DAI ( #10764 )।
- FFmpeg এক্সটেনশন:
- NDK 23.1.7779620 এবং তার উপরে ( #9933 ) এর সাথে FFmpeg লাইব্রেরি লিঙ্ক করতে নতুন প্রয়োজনীয় পতাকা যুক্ত করুন।
- AV1 এক্সটেনশন:
- সর্বশেষ অ্যান্ড্রয়েড স্টুডিও রিলিজের ( #9933 ) সাথে অসঙ্গতি এড়াতে CMake সংস্করণ আপডেট করুন।
- কাস্ট এক্সটেনশন:
- একটি
MediaController
( #142 ) দিয়ে প্লেব্যাক নিয়ন্ত্রণ করার সময়CastPlayer
সনাক্ত করতে সক্ষম হতেgetDeviceInfo()
প্রয়োগ করুন।
- একটি
- ট্রান্সফরমার:
- যখন একটি আউটপুট নমুনা তৈরি করা খুব ধীর তা সনাক্ত করতে muxer ওয়াচডগ টাইমার যোগ করুন৷
- অপ্রচলিত চিহ্নগুলি সরান:
-
Transformer.Builder.setOutputMimeType(String)
সরান। এই বৈশিষ্ট্য সরানো হয়েছে. ডিফল্ট মুক্সার ব্যবহার করা হলে MIME প্রকারটি সর্বদা MP4 হবে।
-
সংস্করণ 1.0.0-beta02
জুলাই 21, 2022
androidx.media3:media3-*:1.0.0-beta02
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-beta02-এ এই কমিট রয়েছে।
এই রিলিজটি ExoPlayer 2.18.1 রিলিজের সাথে মিলে যায়।
- মূল গ্রন্থাগার:
- নিশ্চিত করুন যে
ExoPlayer.setShuffleOrder
এর সাথেShuffleOrder
পরিবর্তন করার ফলেPlayer.Listener#onTimelineChanged
withreason=Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED
( #9889 )। - প্রগতিশীল মিডিয়ার জন্য, শুধুমাত্র বাফার অবস্থানে নির্বাচিত ট্র্যাকগুলি অন্তর্ভুক্ত করুন ( #10361 )।
- সমস্ত ExoPlayer লগ আউটপুট ( #9752 ) এর জন্য কাস্টম লগারকে অনুমতি দিন।
-
DefaultMediaSourceFactory
এsetDataSourceFactory
এর বাস্তবায়ন ঠিক করুন, যা কিছু ক্ষেত্রে অ-কার্যকর ছিল ( #116 )।
- নিশ্চিত করুন যে
- নিষ্কাশনকারী:
- ড্যাশ:
- ম্যানিফেস্ট ( #10246 ) থেকে ClearKey লাইসেন্স URL পার্স করুন।
- UI:
- নিশ্চিত করুন যে টকব্যাক প্লেব্যাক কন্ট্রোল মেনুতে বর্তমানে সক্রিয় গতির বিকল্প ঘোষণা করেছে ( #10298 )।
- RTSP:
- VP8 খণ্ডিত প্যাকেট হ্যান্ডলিং যোগ করুন ( #110 )।
- লিনব্যাক এক্সটেনশন:
-
LeanbackAdapter
( 10420 ) এ যখন-তৈরি পরিবর্তন হয়playWhenReady
শুনুন।
-
- কাস্ট:
সংস্করণ 1.0.0-beta01
16 জুন, 2022
androidx.media3:media3-*:1.0.0-beta01
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-beta01-এ এই কমিট রয়েছে।
এটি ExoPlayer 2.18.0 রিলিজের সাথে মিলে যায়।
- মূল গ্রন্থাগার:
-
MediaMetricsManager
এর মাধ্যমে Android প্ল্যাটফর্ম ডায়াগনস্টিকসের জন্য সমর্থন সক্ষম করুন৷ ExoPlayer প্লেব্যাক ইভেন্ট এবং কর্মক্ষমতা ডেটা প্ল্যাটফর্মে ফরোয়ার্ড করবে, যা ডিভাইসে সিস্টেম কর্মক্ষমতা এবং ডিবাগিং তথ্য প্রদান করতে সাহায্য করে। ডিভাইসের ব্যবহারকারীর দ্বারা ব্যবহার এবং ডায়াগনস্টিক ডেটা ভাগ করা সক্ষম হলে এই ডেটা Google দ্বারা সংগ্রহ করা যেতে পারে৷ অ্যাপগুলিExoPlayer.Builder.setUsePlatformDiagnostics(false)
দিয়ে ExoPlayer-এর জন্য প্ল্যাটফর্ম ডায়াগনস্টিকসে অবদান রাখা থেকে অপ্ট-আউট করতে পারে। -
MergingMediaSource
ব্যবহার করার সময় ট্র্যাকগুলি প্রায়ই রিসেট করা হয় এমন বাগ ঠিক করুন, উদাহরণস্বরূপ যখন সাইড-লোড করা সাবটাইটেল এবং নির্বাচিত সাবটাইটেল মিড-প্লেব্যাক ( #10248 ) পরিবর্তন করা হয়। - API 29 এবং 30-এ 5G-NSA নেটওয়ার্কের ধরন সনাক্ত করা বন্ধ করুন৷ এই প্লেব্যাকগুলি একটি 4G নেটওয়ার্ক ধরে নেবে৷
-
MediaSource.Factory.setDrmSessionManagerProvider
এবংMediaSource.Factory.setLoadErrorHandlingPolicy
এnull
পাস করার অনুমতি দিন। প্রয়োজনেDefaultDrmSessionManagerProvider
এবংDefaultLoadErrorHandlingPolicy
এর উদাহরণগুলি স্পষ্টভাবে পাস করা যেতে পারে। - সঠিক
LocalConfiguration
জানা না থাকলে মিডিয়া প্লে করার জন্য প্রয়োজনীয় মেটাডেটা উপস্থাপন করতেMediaItem.RequestMetadata
যোগ করুন। এছাড়াওMediaMetadata.mediaUrl
মুছে ফেলুন কারণ এটি এখনRequestMetadata
তে অন্তর্ভুক্ত। - খেলোয়াড়দের একটি আইটেম সেট করার অনুমতি দিতে সক্ষম করতে
Player.Command.COMMAND_SET_MEDIA_ITEM
যোগ করুন।
-
- ট্র্যাক নির্বাচন:
-
TrackSelectionOverrides
ক্লাসকেTrackSelectionParameters
এ সমতল করুন এবংTrackSelectionOverride
শীর্ষ স্তরের শ্রেণীতে উন্নীত করুন। -
TracksInfo
ইনফোকেTracks
এবংTracksInfo.TrackGroupInfo
ইনফোকেTracks.Group
পুনঃনামকরণ করুন।Player.getCurrentTracksInfo
এবংPlayer.Listener.onTracksInfoChanged
এর নামওPlayer.getCurrentTracks
এবংPlayer.Listener.onTracksChanged
করা হয়েছে। এর মধ্যে রয়েছেPlayer.Listener.onTracksChanged
পদ্ধতির নাম 'আন-অপ্রত্যাশিত', কিন্তু বিভিন্ন ধরনের প্যারামিটার সহ। -
DefaultTrackSelector.buildUponParameters
এবংDefaultTrackSelector.Parameters.buildUpon
পরিবর্তন করুনDefaultTrackSelector.ParametersBuilder
এর পরিবর্তেDefaultTrackSelector.Parameters.Builder
ফেরত দিন। -
DefaultTrackSelector.Parameters.constrainAudioChannelCountToDeviceCapabilities
যোগ করুন যা ডিফল্টরূপে সক্ষম। সক্রিয় করা হলে,DefaultTrackSelector
এমন অডিও ট্র্যাক পছন্দ করবে যার চ্যানেলের সংখ্যা ডিভাইসের আউটপুট ক্ষমতার বেশি নয়। হ্যান্ডহেল্ড ডিভাইসে,DefaultTrackSelector
মাল্টিচ্যানেল অডিও ফরম্যাটের চেয়ে স্টেরিও/মনো পছন্দ করবে, যদি না মাল্টিচ্যানেল ফর্ম্যাটটি স্থানিক (Android 12L+) বা ডলবি চারপাশের সাউন্ড ফর্ম্যাট না হয়। উপরন্তু, অডিও স্থানিককরণকে সমর্থন করে এমন ডিভাইসগুলিতে,DefaultTrackSelector
স্প্যাটিলাইজার বৈশিষ্ট্যগুলির পরিবর্তনের জন্য নিরীক্ষণ করবে এবং এর উপর একটি নতুন ট্র্যাক নির্বাচন ট্রিগার করবে। একটিtelevision
UI মোড সহ ডিভাইসগুলিকে এই সীমাবদ্ধতাগুলি থেকে বাদ দেওয়া হয়েছে এবং সর্বোচ্চ চ্যানেল গণনা সহ বিন্যাসটিকে অগ্রাধিকার দেওয়া হবে৷ এই বৈশিষ্ট্যটি সক্ষম করার জন্য,DefaultTrackSelector
দৃষ্টান্ত একটিContext
দিয়ে তৈরি করা আবশ্যক।
-
- ভিডিও:
-
DummySurface
নাম পরিবর্তন করেPlaceholderSurface
করুন। -
MediaCodecVideoRenderer.getCodecMaxInputSize
এ AV1 সমর্থন যোগ করুন।
-
- শ্রুতি:
- LG AC3 অডিও ডিকোডার বিজ্ঞাপন অ-মানক MIME প্রকার ব্যবহার করুন৷
- API <21-এ ধীরগতির ART যাচাইকরণ রোধ করতে
android.media.AudioAttributes
থেকেAudioAttributes.getAudioAttributesV21()
এর রিটার্ন টাইপটিকে একটি নতুনAudioAttributesV21
র্যাপার ক্লাসে পরিবর্তন করুন। - প্ল্যাটফর্ম (API 29+) জিজ্ঞাসা করুন বা অডিও পাসথ্রু-এর জন্য অডিও এনকোডিং চ্যানেল গণনা অনুমান করুন যখন ফর্ম্যাট অডিও চ্যানেল গণনা সেট করা নেই, যা HLS খণ্ডহীন প্রস্তুতি ( 10204 ) এর সাথে ঘটে।
- চ্যানেল মাস্ক
AudioFormat.CHANNEL_OUT_7POINT1POINT4
দিয়েAudioTrack
কনফিগার করুন যদি ডিকোডার 12টি চ্যানেল PCM অডিও ( #10322 .
- ডিআরএম
- বিন্যাস পরিবর্তন ( 10274 ) এর পরে অবিলম্বে খোঁজার সময় DRM সেশনটি সর্বদা সঠিকভাবে আপডেট করা হয়েছে তা নিশ্চিত করুন।
- পাঠ্য:
-
Player.getCurrentCues()
পরিবর্তন করুনList<Cue>
এর পরিবর্তেCueGroup
ফেরত দিতে। - SSA:
OutlineColour
শৈলী সেটিং সমর্থন করুন যখনBorderStyle == 3
(অর্থাৎOutlineColour
কিউর পটভূমি সেট করে) ( #8435 )। - CEA-708: একাধিক পরিষেবা ব্লকে ডেটা পার্স করুন এবং বর্তমানে নির্বাচিত পরিষেবা নম্বরের সাথে যুক্ত নয় এমন ব্লকগুলিকে উপেক্ষা করুন।
-
RawCcExtractor
সরান, যা শুধুমাত্র একটি Google-অভ্যন্তরীণ সাবটাইটেল বিন্যাস পরিচালনা করতে ব্যবহৃত হয়েছিল।
-
- নিষ্কাশনকারী:
- UI:
-
useController=false
( #9605 ) ব্যবহার করার ক্ষেত্রেPlayerView
এ সেট করাOnClickListener
এ ইভেন্টের ডেলিভারি ঠিক করুন। এছাড়াও সমস্ত ভিউ কনফিগারেশনের জন্যOnLongClickListener
এ ইভেন্টের ডেলিভারি ঠিক করুন। -
ACTION_UP
এর আগে একটি ক্লিক ( #9861 ) হিসাবেPlayerView
এর সীমানা থেকে বেরিয়ে আসা স্পর্শ ইভেন্টগুলির একটি ক্রমকে ভুলভাবে চিকিত্সা করা ঠিক করুন। -
PlayerView
অ্যাক্সেসিবিলিটি সমস্যাটি ঠিক করুন যেখানে ট্যাপ করা নিয়ন্ত্রণগুলি লুকানোর পরিবর্তে প্লেব্যাককে টগল করতে পারে ( #8627 )। -
ExoPlayer
এর পরিবর্তেPlayer
ইন্টারফেসের সাথে কাজ করতেTrackSelectionView
এবংTrackSelectionDialogBuilder
পুনরায় লিখুন। এটি ভিউগুলিকে অন্যান্যPlayer
বাস্তবায়নের সাথে ব্যবহার করার অনুমতি দেয় এবং UI মডিউল থেকে ExoPlayer মডিউলে নির্ভরতা সরিয়ে দেয়। এটি একটি ব্রেকিং পরিবর্তন. -
PlayerView
ট্র্যাক সিলেক্টরে জোর করে টেক্সট ট্র্যাক দেখাবেন না এবং "কোনটিই" নির্বাচন করা না থাকলে একটি উপযুক্ত বাধ্যতামূলক পাঠ্য ট্র্যাক নির্বাচন করুন ( #9432 )।
-
- ড্যাশ:
- ডিটিএস
AudioChannelConfiguration
উপাদান থেকে চ্যানেল গণনা পার্স করুন। এটি ডিটিএস স্ট্রীমের জন্য অডিও পাসথ্রু পুনরায় সক্ষম করে ( #10159 )। -
DashMediaSource.Factory.setCompositeSequenceableLoaderFactory
এnull
পাস করার অনুমতি দিন।DefaultCompositeSequenceableLoaderFactory
এর উদাহরণ প্রয়োজন হলে স্পষ্টভাবে পাস করা যেতে পারে।
- ডিটিএস
- HLS:
- প্লেলিস্ট CODECS অ্যাট্রিবিউটে অডিও কোডেক ( #10065 ) না থাকলে খণ্ডিত প্রস্তুতিতে পতন।
-
HlsMediaSource.Factory.setCompositeSequenceableLoaderFactory
,HlsMediaSource.Factory.setPlaylistParserFactory
, এবংHlsMediaSource.Factory.setPlaylistTrackerFactory
এnull
পাস করার অনুমতি দিন।DefaultCompositeSequenceableLoaderFactory
,DefaultHlsPlaylistParserFactory
, অথবাDefaultHlsPlaylistTracker.FACTORY
এর একটি রেফারেন্স প্রয়োজন হলে স্পষ্টভাবে পাস করা যেতে পারে৷
- মসৃণ স্ট্রিমিং:
-
SsMediaSource.Factory.setCompositeSequenceableLoaderFactory
এnull
পাস করার অনুমতি দিন।DefaultCompositeSequenceableLoaderFactory
এর উদাহরণ প্রয়োজন হলে স্পষ্টভাবে পাস করা যেতে পারে।
-
- RTSP:
- H263 ( #63 ) এর জন্য RTP রিডার যোগ করুন।
- MPEG4 ( #35 ) এর জন্য RTP রিডার যোগ করুন।
- HEVC ( #36 ) এর জন্য RTP রিডার যোগ করুন।
- AMR এর জন্য RTP রিডার যোগ করুন। বর্তমানে শুধুমাত্র মনো-চ্যানেল, নন-ইন্টারলিভড AMR স্ট্রীম সমর্থিত। যৌগিক AMR RTP পেলোড সমর্থিত নয়। ( #46 )
- VP8 ( #47 ) এর জন্য RTP রিডার যোগ করুন।
- WAV ( #56 ) এর জন্য RTP রিডার যোগ করুন।
- RTSP মৌলিক অনুমোদন হেডার ঠিক করুন। ( #9544 )।
- বাধ্যতামূলক SDP ক্ষেত্রগুলি পরীক্ষা করা বন্ধ করুন কারণ ExoPlayer-এর তাদের প্রয়োজন নেই ( #10049 )।
- RTSP টাইমিং ( #10165 ) পার্স করার সময় চেক করা ব্যতিক্রম ছুঁড়ে দিন।
- VP9 ( #47 ) এর জন্য RTP রিডার যোগ করুন।
- OPUS ( #53 ) এর জন্য RTP রিডার যোগ করুন।
- তথ্য সূত্র:
-
DummyDataSource
থেকেPlaceholderDataSource
নামকরণ করুন। - OkHttp ব্যাহত হ্যান্ডলিং ওয়ার্কআউন্ড।
-
- সেশন:
- অনুরোধের অ্যাসিঙ্ক্রোনাস রেজোলিউশনের অনুমতি দিতে
MediaSession.MediaItemFiller
কেMediaSession.Callback.onAddMediaItems
দিয়ে প্রতিস্থাপন করুন। -
MediaController
যখন একটি লিগ্যাসি মিডিয়া সেশনে সংযোগ করে তখনsetMediaItems(s)
পদ্ধতি সমর্থন করে। -
MediaController.setMediaUri
এবংMediaSession.Callback.onSetMediaUri
সরান।MediaController.setMediaItem
এবংMediaSession.Callback.onAddMediaItems
ব্যবহার করে একই কার্যকারিতা অর্জন করা যেতে পারে। - ফরওয়ার্ড লিগ্যাসি
MediaController
onSetMediaUri
এর পরিবর্তেMediaSession.Callback.onAddMediaItems
এ মিডিয়া চালাতে কল করে। - বিজ্ঞপ্তির কাস্টমাইজেশন প্রদান করতে
MediaNotification.Provider
এবংDefaultMediaNotificationProvider
যোগ করুন। - আর্টওয়ার্ক ছবি ডাউনলোড করার জন্য
BitmapLoader
এবংSimpleBitmapLoader
যোগ করুন। - উত্তরাধিকার সেশনের সাথে পিছনের সামঞ্জস্য প্রদান করতে
MediaSession.setCustomLayout()
যোগ করুন। - লিগ্যাসি সেশনের সাথে বৈশিষ্ট্য সমতা প্রদান করতে
MediaSession.setSessionExtras()
যোগ করুন। -
MediaSession.MediaSessionCallback
কেMediaSession.Callback
,MediaLibrarySession.MediaLibrarySessionCallback
এMediaLibrarySession.Callback
এবংMediaSession.Builder.setSessionCallback
এsetCallback
করুন। -
MediaControllerImplLegacy
( #59 ) এ NPE ঠিক করুন। - টাইমলাইন পরিবর্তনের উপর সেশন অবস্থানের তথ্য আপডেট করুন ( #51 )।
- কন্ট্রোলার ( #74 ) রিলিজ করার পরে
MediaControllerImplBase
এ NPE ঠিক করুন।
- অনুরোধের অ্যাসিঙ্ক্রোনাস রেজোলিউশনের অনুমতি দিতে
- বিজ্ঞাপন প্লেব্যাক / IMA:
- মিডিয়া রেটিং কাউন্সিলের (MRC) সুপারিশের সাথে সারিবদ্ধ হতে প্রতি 100ms থেকে প্রতি 200ms-এ বিজ্ঞাপন ভোটের হার কমিয়ে দিন।
- FFmpeg এক্সটেনশন:
- একটি CMake বাগ এড়াতে CMake সংস্করণ
3.21.0+
এ আপডেট করুন যার ফলে AndroidStudio-এর গ্রেডেল সিঙ্ক ব্যর্থ হয় ( #9933 )।
- একটি CMake বাগ এড়াতে CMake সংস্করণ
- অপ্রচলিত চিহ্নগুলি সরান:
-
Player.Listener.onTracksChanged(TrackGroupArray, TrackSelectionArray)
সরান। পরিবর্তেPlayer.Listener.onTracksChanged(Tracks)
ব্যবহার করুন। -
Player.getCurrentTrackGroups
এবংPlayer.getCurrentTrackSelections
সরান। পরিবর্তেPlayer.getCurrentTracks
ব্যবহার করুন। এছাড়াও আপনিExoPlayer.getCurrentTrackGroups
এবংExoPlayer.getCurrentTrackSelections
ব্যবহার করা চালিয়ে যেতে পারেন, যদিও এই পদ্ধতিগুলি অবহেলিত থাকে৷ -
DownloadHelper
DEFAULT_TRACK_SELECTOR_PARAMETERS_WITHOUT_VIEWPORT
এবংDEFAULT_TRACK_SELECTOR_PARAMETERS
ধ্রুবকগুলি সরান৷ সম্ভব হলে এর পরিবর্তেgetDefaultTrackSelectorParameters(Context)
ব্যবহার করুন এবং অন্যথায়DEFAULT_TRACK_SELECTOR_PARAMETERS_WITHOUT_CONTEXT
। - কনস্ট্রাক্টর
DefaultTrackSelector(ExoTrackSelection.Factory)
সরান। পরিবর্তেDefaultTrackSelector(Context, ExoTrackSelection.Factory)
ব্যবহার করুন। -
Transformer.Builder.setContext
সরান। এর পরিবর্তেContext
Transformer.Builder
কনস্ট্রাক্টরের কাছে পাঠানো উচিত।
-
সংস্করণ 1.0.0-alpha03
14 মার্চ, 2022
androidx.media3:media3-*:1.0.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha03 এই কমিট ধারণ করে।
এটি ExoPlayer 2.17.1 রিলিজের সাথে মিলে যায়।
- শ্রুতি:
- HLS-এ Dolby Atmos (E-AC3-JOC) এর জন্য অডিও ক্ষমতা পরীক্ষা করার ত্রুটি ঠিক করুন।
- নিষ্কাশনকারী:
- FMP4: সমস্যাটি ঠিক করুন যেখানে v0 এবং v1 emsg পরমাণু ( #9996 ) উভয় স্ট্রিমের জন্য ভুল ক্রমে emsg নমুনা মেটাডেটা আউটপুট হতে পারে।
- পাঠ্য:
-
SubtitleConfiguration
ফিল্ডকে অগ্রাধিকার দিতেSingleSampleMediaSource.Factory.setTrackId
এবংMediaItem.SubtitleConfiguration.Builder.setId
এর মিথস্ক্রিয়া ঠিক করুন এবং এটি সেট না থাকলেFactory
মানতে ফিরে যান ( #10016 )।
-
- বিজ্ঞাপন প্লেব্যাক:
- লাইভ HLS SSAI স্ট্রীমগুলিতে বিজ্ঞাপনের সময়সীমার মধ্যে অডিও আন্ডাররান ঠিক করুন।
সংস্করণ 1.0.0-alpha02
2 মার্চ, 2022
androidx.media3:media3-*:1.0.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha02 এই কমিট ধারণ করে।
এটি ExoPlayer 2.17.0 রিলিজের সাথে মিলে যায়।
- মূল গ্রন্থাগার:
- সুরক্ষিত পদ্ধতি যোগ করুন
DefaultRenderersFactory.getCodecAdapterFactory()
যাতেDefaultRenderersFactory
এর সাবক্লাসগুলি যাbuildVideoRenderers()
বাbuildAudioRenderers()
ওভাররাইড করে কোডেক অ্যাডাপ্টার ফ্যাক্টরি অ্যাক্সেস করতে পারে এবং তাদের তৈরি করাMediaCodecRenderer
দৃষ্টান্তগুলিতে এটি পাস করতে পারে। - ICY হেডার ফিল্ডের
name
এবংgenre
যথাক্রমেMediaMetadata.station
এবংMediaMetadata.genre
এ প্রচার করুন যাতে তারাPlayer.Listener.onMediaMetadataChanged()
( #9677 ) এর মাধ্যমে অ্যাপে পৌঁছায়। -
DefaultHttpDataSource#getResponseHeaders
থেকে নাল কীগুলি সরান। - একটি
MediaCodec
দৃষ্টান্ত তৈরি করতে ব্যর্থ হলে ঘুমান এবং পুনরায় চেষ্টা করুন। এটি একটি সমস্যাকে ঘিরে কাজ করে যা কিছু ডিভাইসে একটি সুরক্ষিত কোডেক থেকে অন্য কোডেকে স্যুইচ করার সময় ঘটে ( #8696 )। -
MediaCodecAdapter.getMetrics()
যোগ করুন যাতে ব্যবহারকারীরাMediaCodec
থেকে মেট্রিক্স ডেটা পেতে পারেন। ( #9766 )। - Maven নির্ভরতা রেজোলিউশন ( #8353 ) ঠিক করুন।
- লাইভ স্ট্রিমগুলির জন্য স্বয়ংক্রিয় গতির সামঞ্জস্য অক্ষম করুন যাতে কম লেটেন্সি বৈশিষ্ট্য নেই বা গতি সেট করার জন্য ব্যবহারকারীর অনুরোধ নেই ( #9329 )।
-
DecoderCounters#inputBufferCount
queuedInputBufferCount
এ পুনঃনামকরণ করুন। -
SimpleExoPlayer.renderers
ব্যক্তিগত করুন। RenderersExoPlayer.getRenderer
এর মাধ্যমে অ্যাক্সেস করা যেতে পারে। -
Player.EventFlags
এ মানগুলি মেলানোর জন্য কিছুAnalyticsListener.EventFlags
ধ্রুবক মান আপডেট করা হয়েছে। -
AnalyticsCollector
একটি ইন্টারফেসে বিভক্ত করুন এবং ডিফল্ট বাস্তবায়নে এটিকে R8 দ্বারা ছিনিয়ে নেওয়ার অনুমতি দিতে যদি কোনো অ্যাপের প্রয়োজন না হয়।
- সুরক্ষিত পদ্ধতি যোগ করুন
- ট্র্যাক নির্বাচন:
- ট্র্যাক নির্বাচনে ( #9402 ) পছন্দের ভিডিও রোল পতাকা সমর্থন করে।
- অভিযোজনের জন্য একাধিক ভিডিও ট্র্যাক নির্বাচন করার সময় পছন্দের MIME প্রকার এবং ভূমিকা ফ্ল্যাগগুলি গ্রহণ করতে ভিডিও ট্র্যাক নির্বাচন যুক্তি আপডেট করুন ( #9519 )।
- ভিডিও এবং অডিও ট্র্যাক নির্বাচন লজিক আপডেট করুন শুধুমাত্র অভিযোজিত নির্বাচনের জন্য ফরম্যাট বেছে নিতে যাতে একই স্তরের ডিকোডার এবং হার্ডওয়্যার সমর্থন রয়েছে ( #9565 )।
- একাধিক কোডেক প্রাইমারি, হার্ডওয়্যার-এক্সিলারেটেড ডিকোডার ( #4835 ) দ্বারা সমর্থিত হলে আরও দক্ষ কোডেক পছন্দ করতে ভিডিও ট্র্যাক নির্বাচন লজিক আপডেট করুন।
- প্রযুক্তিগত ট্র্যাক নির্বাচনের সীমাবদ্ধতার (উদাহরণস্বরূপ, পছন্দের MIME প্রকার, বা সর্বাধিক চ্যানেল গণনা) থেকে অডিও বিষয়বস্তু পছন্দগুলি (উদাহরণস্বরূপ, "ডিফল্ট" অডিও ট্র্যাক বা সিস্টেম লোকেল ভাষার সাথে মিলে যাওয়া একটি ট্র্যাক)।
- ট্র্যাক নির্বাচনের সমস্যাটি ঠিক করুন যেখানে একটি ট্র্যাক গ্রুপকে ওভাররাইড করা একই ধরণের অন্যান্য ট্র্যাক গ্রুপগুলিকে নিষ্ক্রিয় করে না ( #9675 )।
- ট্র্যাক নির্বাচনের সমস্যাটি ঠিক করুন যেখানে অ-খালি এবং খালি ট্র্যাক ওভাররাইডের মিশ্রণ সঠিকভাবে প্রয়োগ করা হয়নি ( #9649 )।
- একটি
TrackGroupArray
এ ডুপ্লিকেটTrackGroup
নিষিদ্ধ করুন।TrackGroup
গুলিকে সর্বদাTrackGroup
কনস্ট্রাক্টরে একটিid
সেট করে আলাদা করা যায়। একটি সক্রিয় ট্র্যাক ওভাররাইড ( #9718 ) সহ অ্যাপটিকে ব্যাকগ্রাউন্ড করার পরে প্লেব্যাক পুনরায় শুরু করার সময় এটি একটি ক্র্যাশ সংশোধন করে। - প্লেব্যাক লাইভ প্রান্তের খুব কাছাকাছি হলেও পর্যাপ্ত নেটওয়ার্ক ব্যান্ডউইথের অধীনে একটি গুণমান বৃদ্ধির অনুমতি দেওয়ার জন্য
AdaptiveTrackSelection
যুক্তি সংশোধন করুন ( #9784 )।
- ভিডিও:
- প্রয়োজনে একটি সামঞ্জস্যপূর্ণ H264/H265 ডিকোডার ব্যবহার করতে ডলবি ভিশনের জন্য ডিকোডার ফলব্যাক লজিক ঠিক করুন।
- শ্রুতি:
- প্রয়োজনে একটি সামঞ্জস্যপূর্ণ E-AC3 ডিকোডার ব্যবহার করতে ডলবি অ্যাটমস (E-AC3-JOC) এর জন্য ডিকোডার ফলব্যাক লজিক ঠিক করুন৷
-
AudioCapabilities
এপিআই পরিবর্তন করুন যাতেAudioCapabilities.DEFAULT_AUDIO_CAPABILITIES
স্পষ্টভাবে পাস করার প্রয়োজন হয়৷ DEFAULT_AUDIO_CAPABILITIES এর পরিবর্তেnull
৷ - একটি
AudioTrackBufferSizeProvider
DefaultAudioSink
এ ইনজেক্ট করেAudioTrack
বাফার আকারের গণনার কাস্টমাইজেশনের অনুমতি দিন। ( #8891 )। - অনুরোধ করা বাফার আকার > 1MB হলে
AudioTrack
তৈরির পুনরায় চেষ্টা করুন। ( #9712 )।
- নিষ্কাশনকারী:
- পাঠ্য:
- DRM:
- DrmSessionManager থেকে
playbackLooper
সরানDrmSessionManager.(pre)acquireSession
। যখন একটি কাস্টমMediaSource
একটি অ্যাপ্লিকেশন দ্বারা একটিDrmSessionManager
ব্যবহার করা হয়, তখনplaybackLooper
পরিবর্তেDrmSessionManager.setPlayer
এ পাস করতে হবে৷
- DrmSessionManager থেকে
- বিজ্ঞাপন প্লেব্যাক / IMA:
- IMA ডায়নামিক অ্যাড ইনসার্শন (DAI) ( #8213 ) এর জন্য সমর্থন যোগ করুন।
- একটি বিজ্ঞাপন গোষ্ঠী পুনরায় সেট করার অনুমতি দেওয়ার জন্য
AdPlaybackState
এ একটি পদ্ধতি যুক্ত করুন যাতে এটি আবার চালানো যায় ( #9615 )। - বিজ্ঞাপন প্লেব্যাকের সময় প্লেব্যাকের গতি 1.0 প্রয়োগ করুন ( #9018 )।
- সমস্যাটি ঠিক করুন যেখানে একটি বিজ্ঞাপন গোষ্ঠী লোড করতে ব্যর্থ হয়েছে যা তাৎক্ষণিক প্লেব্যাক রিসেট করেছে ( #9929 )।
- UI:
- ড্যাশ:
-
Representation
পার্স করা অপরিহার্য এবং সম্পূরক বৈশিষ্ট্য যোগ করুন ( #9579 )। -
forced-subtitle
ট্র্যাক ভূমিকা সমর্থন করুন ( #9727 )। -
C.SELECTION_FLAG_DEFAULT
হিসাবেmain
ট্র্যাক ভূমিকাকে ব্যাখ্যা করা বন্ধ করুন। - DVB নেমস্পেস ( #9856 ) ঘোষণা করে না এমন ম্যানিফেস্টের জন্য বেস ইউআরএল এক্সক্লুশন লজিক ঠিক করুন।
- আপেক্ষিক
MPD.Location
অবস্থান ইউআরএল ( #9939 ) সমর্থন করুন।
-
- HLS:
- শুধুমাত্র অডিও HLS স্ট্রিমগুলির জন্য
Format.label
সঠিকভাবে পূরণ করুন ( #9608 )। - স্টার্ট আপের সময় উন্নত করতে ডিফল্টরূপে খণ্ডহীন প্রস্তুতি ব্যবহার করুন। যদি আপনার উপস্থাপনায় মিক্সড ক্লোজড-ক্যাপশন ট্র্যাক থাকে যা মাস্টার প্লেলিস্টে ঘোষিত না হয়, তাহলে আপনাকে প্লেব্যাকের জন্য উপলব্ধ হতে মাস্টার প্লেলিস্টে যোগ করতে হবে, অথবা
HlsMediaSource.Factory.setAllowChunklessPreparation(false)
দিয়ে খণ্ডহীন প্রস্তুতি বন্ধ করতে হবে। - HLS ( #2882 ) এ কী-ফ্রেম নির্ভুল খোঁজার সমর্থন করুন।
- শুধুমাত্র অডিও HLS স্ট্রিমগুলির জন্য
- RTSP:
- যেকোনো সার্ভার সংযোগের জন্য ব্যবহৃত
SocketFactory
ওভাররাইড করতে একটি ক্লায়েন্ট API প্রদান করুন ( #9606 )। - যদি উভয়ই উপস্থিত থাকে তবে BASIC এর চেয়ে DIGEST প্রমাণীকরণ পদ্ধতি পছন্দ করুন ( #9800 )।
- RTSP ট্র্যাক টাইমিং উপলব্ধ না হলে হ্যান্ডেল করুন ( #9775 )।
- অবৈধ RTP-তথ্য হেডার মান উপেক্ষা করুন ( #9619 )।
- যেকোনো সার্ভার সংযোগের জন্য ব্যবহৃত
- ট্রান্সফরমার:
- প্রয়োজনীয় সর্বনিম্ন API সংস্করণ 21-এ বৃদ্ধি করুন।
-
TransformationException
এখন ট্রান্সফর্মেশনের সময় ঘটে যাওয়া ত্রুটি বর্ণনা করতে ব্যবহৃত হয়। - রূপান্তর বিকল্পগুলি নির্দিষ্ট করার জন্য
TransformationRequest
যোগ করুন। - একাধিক শ্রোতাদের নিবন্ধন করার অনুমতি দিন।
- কোডেক আউটপুট আংশিকভাবে পড়া হলে ট্রান্সফরমার আটকে যাওয়া ঠিক করুন।
- Muxer থ্রো রিলিজ করার সময়
Transformer.getProgress
এ সম্ভাব্য NPE ঠিক করুন। - রূপান্তর প্রয়োগের জন্য একটি ডেমো অ্যাপ যোগ করুন।
- মিডিয়া সেশন এক্সটেনশন:
- ডিফল্টরূপে,
MediaSessionConnector
এখন স্টপে প্লেলিস্ট সাফ করে। যে অ্যাপগুলি প্লেলিস্টটিকে ধরে রাখতে চায় তারা সংযোগকারীতেsetClearMediaItemsOnStop(false)
কল করতে পারে৷
- ডিফল্টরূপে,
- কাস্ট এক্সটেনশন:
- FFmpeg এক্সটেনশন:
-
build_ffmpeg.sh
GNU এর পরিবর্তে LLVM এর বিন ইউটিলসের উপর নির্ভর করুন ( #9933 )।
-
- অ্যান্ড্রয়েড 12 সামঞ্জস্যতা:
-
com.google.android.gms:play-services-cast-framework:20.1.0
এর উপর নির্ভর করতে কাস্ট এক্সটেনশন আপগ্রেড করুন।play-services-cast-framework
আগের সংস্করণগুলি অ্যান্ড্রয়েড 12 টার্গেট করা অ্যাপগুলির সাথে সামঞ্জস্যপূর্ণ নয় এবংPendingIntent
s ( #9528 ) তৈরি করার সময় একটিIllegalArgumentException
এর সাথে ক্র্যাশ হবে৷
-
- অপ্রচলিত চিহ্নগুলি সরান:
-
Player.EventListener
সরান। পরিবর্তেPlayer.Listener
ব্যবহার করুন। -
MediaSourceFactory#setDrmSessionManager
,MediaSourceFactory#setDrmHttpDataSourceFactory
, এবংMediaSourceFactory#setDrmUserAgent
সরান। পরিবর্তেMediaSourceFactory#setDrmSessionManagerProvider
ব্যবহার করুন। -
MediaSourceFactory#setStreamKeys
সরান। পরিবর্তেMediaItem.Builder#setStreamKeys
ব্যবহার করুন। -
MediaSourceFactory#createMediaSource(Uri)
সরান। পরিবর্তেMediaSourceFactory#createMediaSource(MediaItem)
ব্যবহার করুন। -
DashMediaSource
,HlsMediaSource
এবংSsMediaSource
থেকেsetTag
সরান। পরিবর্তেMediaItem.Builder#setTag
ব্যবহার করুন। -
DashMediaSource#setLivePresentationDelayMs(long, boolean)
সরান। ম্যানিফেস্টকে ওভাররাইড করতেMediaItem.Builder#setLiveConfiguration
এবংMediaItem.LiveConfiguration.Builder#setTargetOffsetMs
ব্যবহার করুন, অথবা একটি ফলব্যাক মান প্রদান করতেDashMediaSource#setFallbackTargetLiveOffsetMs
। - সরান
(Simple)ExoPlayer.setThrowsWhenUsingWrongThread
। থ্রেড প্রয়োগ থেকে অপ্ট আউট করা আর সম্ভব নয়৷ -
ActionFile
এবংActionFileUpgradeUtil
সরান।DefaultDownloadIndex
এ লিগ্যাসি অ্যাকশন ফাইল মার্জ করতেActionFileUpgradeUtil
ব্যবহার করতে ExoPlayer 2.16.1 বা তার আগে ব্যবহার করুন। -
ProgressiveMediaSource#setExtractorsFactory
সরান। পরিবর্তেProgressiveMediaSource.Factory(DataSource.Factory, ExtractorsFactory)
কনস্ট্রাক্টর ব্যবহার করুন। -
ProgressiveMediaSource.Factory#setTag
এবং, এবংProgressiveMediaSource.Factory#setCustomCacheKey
সরান। পরিবর্তেMediaItem.Builder#setTag
এবংMediaItem.Builder#setCustomCacheKey
ব্যবহার করুন। -
DefaultRenderersFactory(Context, @ExtensionRendererMode int)
এবংDefaultRenderersFactory(Context, @ExtensionRendererMode int, long)
কনস্ট্রাক্টরগুলি সরান৷ পরিবর্তেDefaultRenderersFactory(Context)
কনস্ট্রাক্টর,DefaultRenderersFactory#setExtensionRendererMode
, এবংDefaultRenderersFactory#setAllowedVideoJoiningTimeMs
ব্যবহার করুন। - সমস্ত পাবলিক
CronetDataSource
কনস্ট্রাক্টর সরান। পরিবর্তেCronetDataSource.Factory
ব্যবহার করুন।
-
- নিম্নলিখিত
IntDefs
শুধুমাত্র@Target(TYPE_USE)
এ পরিবর্তন করুন। এটি কোটলিনে ব্যবহারের সংকলনকে ভেঙে ফেলতে পারে, যেটি টাইপ (Int
) টীকা করার জন্য টীকাটি সরানোর মাধ্যমে ঠিক করা যেতে পারে।-
@AacAudioObjectType
-
@Ac3Util.SyncFrameInfo.StreamType
-
@AdLoadException.Type
-
@AdtsExtractor.Flags
-
@AmrExtractor.Flags
-
@AspectRatioFrameLayout.ResizeMode
-
@AudioFocusManager.PlayerCommand
-
@AudioSink.SinkFormatSupport
-
@BinarySearchSeeker.TimestampSearchResult.Type
-
@BufferReplacementMode
-
@C.BufferFlags
-
@C.ColorRange
-
@C.ColorSpace
-
@C.ColorTransfer
-
@C.CryptoMode
-
@C.Encoding
-
@C.PcmEncoding
-
@C.Projection
-
@C.SelectionReason
-
@C.StereoMode
-
@C.VideoOutputMode
-
@CacheDataSource.Flags
-
@CaptionStyleCompat.EdgeType
-
@DataSpec.Flags
-
@DataSpec.HttpMethods
-
@DecoderDiscardReasons
-
@DecoderReuseResult
-
@DefaultAudioSink.OutputMode
-
@DefaultDrmSessionManager.Mode
-
@DefaultTrackSelector.SelectionEligibility
-
@DefaultTsPayloadReaderFactory.Flags
-
@EGLSurfaceTexture.SecureMode
-
@EbmlProcessor.ElementType
-
@ExoMediaDrm.KeyRequest.RequestType
-
@ExtensionRendererMode
-
@Extractor.ReadResult
-
@FileTypes.Type
-
@FlacExtractor.Flags
(com.google.android.exoplayer2.ext.flac
প্যাকেজে) -
@FlacExtractor.Flags
(com.google.android.exoplayer2.extractor.flac
প্যাকেজে) -
@FragmentedMp4Extractor.Flags
-
@HlsMediaPlaylist.PlaylistType
-
@HttpDataSourceException.Type
-
@IllegalClippingException.Reason
-
@IllegalMergeException.Reason
-
@LoadErrorHandlingPolicy.FallbackType
-
@MatroskaExtractor.Flags
-
@Mp3Extractor.Flags
-
@Mp4Extractor.Flags
-
@NotificationUtil.Importance
-
@PlaybackException.FieldNumber
-
@PlayerNotificationManager.Priority
-
@PlayerNotificationManager.Visibility
-
@PlayerView.ShowBuffering
-
@Renderer.State
-
@RendererCapabilities.AdaptiveSupport
-
@RendererCapabilities.Capabilities
-
@RendererCapabilities.DecoderSupport
-
@RendererCapabilities.FormatSupport
-
@RendererCapabilities.HardwareAccelerationSupport
-
@RendererCapabilities.TunnelingSupport
-
@SampleStream.ReadDataResult
-
@SampleStream.ReadFlags
-
@StyledPlayerView.ShowBuffering
-
@SubtitleView.ViewType
-
@TextAnnotation.Position
-
@TextEmphasisSpan.MarkFill
-
@TextEmphasisSpan.MarkShape
-
@Track.Transformation
-
@TrackOutput.SampleDataPart
-
@Transformer.ProgressState
-
@TsExtractor.Mode
-
@TsPayloadReader.Flags
-
@WebvttCssStyle.FontSizeUnit
-
সংস্করণ 1.0.0-alpha01
27 অক্টোবর, 2021
androidx.media3:media3-*:1.0.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha01-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট
Media3 হল ExoPlayer সহ মিডিয়া সাপোর্ট লাইব্রেরির জন্য নতুন হোম। প্রথম আলফাতে মিডিয়া ব্যবহারের ক্ষেত্রে প্রয়োগ করার জন্য লাইব্রেরির প্রাথমিক, কার্যকরী বাস্তবায়ন রয়েছে, যার মধ্যে রয়েছে:
- ExoPlayer, Android এর জন্য একটি অ্যাপ্লিকেশন-স্তরের মিডিয়া প্লেয়ার যা কাস্টমাইজ করা এবং প্রসারিত করা সহজ।
- প্লেব্যাক প্রকাশ এবং নিয়ন্ত্রণের জন্য মিডিয়া সেশন কার্যকারিতা। এই নতুন সেশন মডিউলটি এক্সোপ্লেয়ার হিসাবে একই
Player
ইন্টারফেস ব্যবহার করে। - মিডিয়া প্লেব্যাক ব্যবহারকারী ইন্টারফেস নির্মাণের জন্য UI উপাদান।
- ExoPlayer-এর সাথে ব্যবহারের জন্য অন্যান্য লাইব্রেরিতে মডিউল মোড়ানো কার্যকারিতা, উদাহরণস্বরূপ, IMA SDK-এর মাধ্যমে বিজ্ঞাপন সন্নিবেশ।
আরও তথ্যের জন্য, Media3 GitHub প্রকল্পটি দেখুন।
ExoPlayer পূর্বে একটি পৃথক ExoPlayer GitHub প্রকল্পে হোস্ট করা হয়েছিল। Media3 এর প্যাকেজের নাম androidx.media3.exoplayer
। আমরা কিছু সময়ের জন্য ExoPlayer GitHub প্রজেক্ট রক্ষণাবেক্ষণ এবং প্রকাশ করার পরিকল্পনা করছি যাতে অ্যাপগুলিকে Media3 এ স্থানান্তরিত করার জন্য সময় দেওয়া যায়। Media3-এ সমস্ত ExoPlayer মডিউলের প্রতিস্থাপন রয়েছে, লিগ্যাসি মিডিয়া2 এবং মিডিয়াসেসন এক্সটেনশনগুলি ছাড়া, যেগুলি নতুন media3-session
মডিউল দ্বারা প্রতিস্থাপিত হয়েছে। এটি একটি অ্যাডাপ্টার/সংযোগকারী ক্লাস ব্যবহার করার প্রয়োজন ছাড়াই প্লেয়ার এবং মিডিয়া সেশনগুলির মধ্যে সরাসরি একীকরণ প্রদান করে।