Added ExoPlayer support
This commit is contained in:
parent
352a883b5d
commit
3a8611ebf8
21 changed files with 2633 additions and 137 deletions
116
app/src/main/res/layout/exo_player_activity.xml
Normal file
116
app/src/main/res/layout/exo_player_activity.xml
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Copyright (C) 2014 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/root"
|
||||
android:focusable="true"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:keepScreenOn="true">
|
||||
|
||||
<com.google.android.exoplayer.AspectRatioFrameLayout android:id="@+id/video_frame"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center">
|
||||
|
||||
<SurfaceView android:id="@+id/surface_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center"/>
|
||||
|
||||
<View android:id="@+id/shutter"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@android:color/black"/>
|
||||
|
||||
<com.google.android.exoplayer.text.SubtitleLayout android:id="@+id/subtitles"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
</com.google.android.exoplayer.AspectRatioFrameLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="#88000000"
|
||||
android:orientation="vertical">
|
||||
|
||||
|
||||
<TextView android:id="@+id/player_state_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingLeft="4dp"
|
||||
android:paddingRight="4dp"
|
||||
android:textSize="10sp"
|
||||
tools:ignore="SmallSp"/>
|
||||
|
||||
<TextView android:id="@+id/debug_text_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingLeft="4dp"
|
||||
android:paddingRight="4dp"
|
||||
android:textSize="10sp"
|
||||
tools:ignore="SmallSp"/>
|
||||
|
||||
<LinearLayout android:id="@+id/controls_root"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:visibility="gone">
|
||||
|
||||
<Button android:id="@+id/video_controls"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/video"
|
||||
style="@style/ExoPlayerButton"
|
||||
android:visibility="gone"
|
||||
android:onClick="showVideoPopup"/>
|
||||
|
||||
<Button android:id="@+id/audio_controls"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/audio"
|
||||
style="@style/ExoPlayerButton"
|
||||
android:visibility="gone"
|
||||
android:onClick="showAudioPopup"/>
|
||||
|
||||
<Button android:id="@+id/text_controls"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/text"
|
||||
style="@style/ExoPlayerButton"
|
||||
android:visibility="gone"
|
||||
android:onClick="showTextPopup"/>
|
||||
|
||||
<Button android:id="@+id/verbose_log_controls"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/logging"
|
||||
style="@style/ExoPlayerButton"
|
||||
android:onClick="showVerboseLogPopup"/>
|
||||
|
||||
<Button android:id="@+id/retry_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/retry"
|
||||
android:visibility="gone"
|
||||
style="@style/ExoPlayerButton"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</FrameLayout>
|
||||
|
|
@ -1,75 +0,0 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources><string name="upload_date_text">Publikováno %1$s</string>
|
||||
<string name="no_player_found">Žádný přehrávač nenalezen. Nainstalovat VLC?</string>
|
||||
<string name="install">Instalovat</string>
|
||||
<string name="cancel">Zrušit</string>
|
||||
<string name="open_in_browser">Otevřít v prohlížeči</string>
|
||||
<string name="share">Sdílet</string>
|
||||
<string name="loading">Načítám</string>
|
||||
<string name="download">Stáhnout</string>
|
||||
<string name="search">Vyhledat</string>
|
||||
<string name="settings">Nastavení</string>
|
||||
<string name="did_you_mean">"Měli jste na mysli: "</string>
|
||||
<string name="search_page">"Vyhledat stránku: "</string>
|
||||
<string name="share_dialog_title">Sdílet s:</string>
|
||||
<string name="choose_browser">Vybrat prohlížeč:</string>
|
||||
<string name="screen_rotation">otočení</string>
|
||||
<string name="settings_activity_title">Nastavení</string>
|
||||
<string name="use_external_video_player_title">Použít externí video přehrávač</string>
|
||||
<string name="use_external_audio_player_title">Použít externí audio přehrávač</string>
|
||||
|
||||
<string name="download_path_audio_summary">Cesta, kde se uloží audio po stažení.</string>
|
||||
<string name="download_path_audio_dialog_title">Zadejte umístění pro uložení audio souborů.</string>
|
||||
|
||||
<string name="download_path_audio_title">Umístění pro stažené audio</string>
|
||||
<string name="autoplay_through_intent_title">Automatické přehrávání skrze Intent</string>
|
||||
<string name="autoplay_through_intent_summary">Automaticky přehrávat video, jestliže je volané z jiné aplikace.</string>
|
||||
<string name="default_resolution_title">Výchozí rozlišení</string>
|
||||
<string name="play_with_kodi_title">Přehrát s Kodi</string>
|
||||
<string name="kore_not_found">Aplikace Kore nenalezena. Nainstalovat Kore?</string>
|
||||
<string name="view_count_text">%1$s zhlédnutí</string>
|
||||
<string name="background_player_name">NewPipe Přehrávač na pozadí</string>
|
||||
<string name="download_path_title">Umístění pro stažené video</string>
|
||||
<string name="download_path_summary">Cesta, kde se uloží video po stažení.</string>
|
||||
<string name="download_path_dialog_title">Zadejte umístění pro uložená videa</string>
|
||||
|
||||
<string name="show_play_with_kodi_title">Zobrazit možnost \"Přehrát s Kodi\"</string>
|
||||
<string name="show_play_with_kodi_summary">Zobrazit možnost přehrát video s multimediálním centrem Kodi.</string>
|
||||
<string name="play_audio">Audio</string>
|
||||
<string name="default_audio_format_title">Výchozí audio formát</string>
|
||||
<string name="webm_description">WebM — svobodný formát</string>
|
||||
<string name="m4a_description">m4a — lepší kvalita</string>
|
||||
<string name="theme_title">Vzhled</string>
|
||||
<string name="dark_theme_title">Tmavý</string>
|
||||
<string name="light_theme_title">Světlý</string>
|
||||
|
||||
<string name="download_dialog_title">Stažení</string>
|
||||
<string name="next_video_title">Následující video</string>
|
||||
<string name="show_next_and_similar_title">Zobrazit následující a související videa</string>
|
||||
<string name="url_not_supported_toast">URL není podporováno</string>
|
||||
<string name="similar_videos_btn_text">Související videa</string>
|
||||
<string name="search_language_title">Preferovaný jazyk obsahu</string>
|
||||
<string name="settings_category_video_audio_title">Video & audio</string>
|
||||
<string name="settings_category_appearance_title">Vzhled</string>
|
||||
<string name="settings_category_other_title">Ostatní</string>
|
||||
<string name="background_player_playing_toast">Přehrávám na pozadí</string>
|
||||
<string name="play_btn_text">Přehrát</string>
|
||||
<string name="general_error">Chyba</string>
|
||||
<string name="network_error">Chyba sítě</string>
|
||||
<string name="could_not_load_thumbnails">Nebylo možné stáhnout všechny náhledy</string>
|
||||
<string name="youtube_signature_decryption_error">Nebylo možné dekódovat URL videa.</string>
|
||||
<string name="parsing_error">Nebylo možné analyzovat webovou stránku.</string>
|
||||
<string name="content_not_available">Obsah není k dispozici.</string>
|
||||
<string name="blocked_by_gema">Obsah blokuje GEMA.</string>
|
||||
|
||||
<string name="list_thumbnail_view_description">Náhled videa</string>
|
||||
<string name="detail_thumbnail_view_description">Náhled videa</string>
|
||||
<string name="detail_uploader_thumbnail_view_description">Náhled uploadera</string>
|
||||
<string name="detail_likes_img_view_description">To se mi líbí</string>
|
||||
<string name="detail_dislikes_img_view_description">To se mi nelíbí</string>
|
||||
<string name="use_tor_title">Použít Tor</string>
|
||||
<string name="use_tor_summary">Vynutit stahování skrz Tor pro zvýšené soukromí (streaming není zatím podporován)</string>
|
||||
|
||||
<string name="err_dir_create">Nebylo možné vytvořit složku pro stažené soubory \'%1$s\'</string>
|
||||
<string name="info_dir_created">Vytvořena složka pro stažené soubory \'%1$s\'</string>
|
||||
</resources>
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources><string name="background_player_name">NewPipe-fonludilo</string>
|
||||
<string name="view_count_text">%1$s vidoj</string>
|
||||
<string name="upload_date_text">Alŝultita je %1$s</string>
|
||||
<string name="install">Instali</string>
|
||||
<string name="cancel">Nuligi</string>
|
||||
<string name="open_in_browser">Malfermi per retumilo</string>
|
||||
<string name="share">Konigi</string>
|
||||
<string name="loading">Ŝargado</string>
|
||||
<string name="download">Elŝuti</string>
|
||||
<string name="search">Serĉi</string>
|
||||
<string name="settings">Agordoj</string>
|
||||
<string name="did_you_mean">"Ĉu vi intencis: "</string>
|
||||
<string name="search_page">"Serĉpaĝo: "</string>
|
||||
<string name="share_dialog_title">Konigi kun:</string>
|
||||
<string name="choose_browser">Elekti retumilon:</string>
|
||||
<string name="screen_rotation">turno</string>
|
||||
<string name="settings_activity_title">Agordoj</string>
|
||||
<string name="use_external_video_player_title">Uzi eksteran videoludilon</string>
|
||||
<string name="use_external_audio_player_title">Uzi eksteran sonludilon</string>
|
||||
|
||||
<string name="default_resolution_title">Defaŭlta distingivo</string>
|
||||
<string name="play_with_kodi_title">Ludi per Kodi</string>
|
||||
<string name="show_play_with_kodi_title">Montri \"Ludi per Kodi\"-opcion</string>
|
||||
<string name="play_audio">Sono</string>
|
||||
<string name="default_audio_format_title">Defaŭlta sondosierformo</string>
|
||||
<string name="webm_description">WebM — libera dosierformo</string>
|
||||
<string name="m4a_description">m4a — pli bona kvalito</string>
|
||||
<string name="theme_title">Etoso</string>
|
||||
<string name="dark_theme_title">Malluma</string>
|
||||
<string name="light_theme_title">Luma</string>
|
||||
|
||||
<string name="download_dialog_title">Elŝuti</string>
|
||||
<string name="next_video_title">Sekva video</string>
|
||||
<string name="url_not_supported_toast">Ligilo ne subtenita</string>
|
||||
<string name="similar_videos_btn_text">Similaj videoj</string>
|
||||
<string name="search_language_title">Preferata enhavlingvo</string>
|
||||
<string name="settings_category_video_audio_title">Video kaj sono</string>
|
||||
<string name="settings_category_appearance_title">Apero</string>
|
||||
<string name="settings_category_other_title">Alia</string>
|
||||
<string name="background_player_playing_toast">Ludado fone</string>
|
||||
<string name="play_btn_text">Ludi</string>
|
||||
<string name="general_error">Eraro</string>
|
||||
<string name="network_error">Reteraro</string>
|
||||
<string name="content_not_available">Enhavo ne estas disponebla.</string>
|
||||
<string name="blocked_by_gema">Blokita de GEMA.</string>
|
||||
|
||||
<string name="detail_likes_img_view_description">Ŝatoj</string>
|
||||
<string name="detail_dislikes_img_view_description">Malŝatoj</string>
|
||||
</resources>
|
||||
22
app/src/main/res/values/constants.xml
Normal file
22
app/src/main/res/values/constants.xml
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2014 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<!-- The minimum subtitle font size. -->
|
||||
<dimen name="subtitle_minimum_font_size">13sp</dimen>
|
||||
|
||||
</resources>
|
||||
|
|
@ -1,5 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Default screen margins, per the Android Design guidelines. -->
|
||||
<dimen name="activity_horizontal_margin">16dp</dimen>
|
||||
<dimen name="activity_vertical_margin">16dp</dimen>
|
||||
|
||||
<!-- Video Item Search View Dimensions-->
|
||||
<!-- Text Size -->
|
||||
|
|
@ -36,4 +39,4 @@
|
|||
<dimen name="video_item_detail_like_margin">6sp</dimen>
|
||||
<dimen name="video_item_detail_play_fab_margin">20dp</dimen>
|
||||
|
||||
</resources>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
<string name="use_external_video_player_key">use_external_video_player</string>
|
||||
<string name="use_external_audio_player_key">use_external_audio_player</string>
|
||||
<string name="autoplay_through_intent_key">autoplay_through_intent</string>
|
||||
<string name="use_exoplayer_key">use_exoplayer</string>
|
||||
|
||||
<string name="default_resolution_key">default_resolution_preference</string>
|
||||
<string name="default_resolution_value">360p</string>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name" translatable="false">NewPipe</string>
|
||||
<string name="background_player_name">NewPipe Background Player</string>
|
||||
<string name="title_videoitem_detail" translatable="false">NewPipe</string>
|
||||
|
|
@ -84,4 +84,24 @@
|
|||
|
||||
<string name="err_dir_create">Cannot create download directory \'%1$s\'</string>
|
||||
<string name="info_dir_created">Created download directory \'%1$s\'</string>
|
||||
</resources>
|
||||
|
||||
<string name="enable_background_audio">Play in background</string>
|
||||
<string name="video">Video</string>
|
||||
<string name="audio">Audio</string>
|
||||
<string name="text">Text</string>
|
||||
<string name="logging">Logging</string>
|
||||
<string name="logging_normal">Normal</string>
|
||||
<string name="logging_verbose">Verbose</string>
|
||||
<string name="retry">Retry</string>
|
||||
<string name="off">[off]</string>
|
||||
<string name="error_drm_not_supported">Protected content not supported on API levels below 18</string>
|
||||
<string name="error_drm_unsupported_scheme">This device does not support the required DRM scheme</string>
|
||||
<string name="error_drm_unknown">An unknown DRM error occurred</string>
|
||||
<string name="error_no_decoder">This device does not provide a decoder for <xliff:g id="mime_type">%1$s</xliff:g></string>
|
||||
<string name="error_no_secure_decoder">This device does not provide a secure decoder for <xliff:g id="mime_type">%1$s</xliff:g></string>
|
||||
<string name="error_querying_decoders">Unable to query device decoders</string>
|
||||
<string name="error_instantiating_decoder">Unable to instantiate decoder <xliff:g id="decoder_name">%1$s</xliff:g></string>
|
||||
<string name="storage_permission_denied">Permission to access storage was denied</string>
|
||||
<string name="use_exoplayer_title">Use ExoPlayer</string>
|
||||
<string name="use_exoplayer_summary">Experimental</string>
|
||||
</resources>
|
||||
|
|
@ -1,4 +1,19 @@
|
|||
<resources>
|
||||
|
||||
<style name="RootTheme" parent="android:Theme.Holo">
|
||||
</style>
|
||||
|
||||
<style name="PlayerTheme" parent="@style/RootTheme">
|
||||
<item name="android:windowNoTitle">true</item>
|
||||
<item name="android:windowBackground">@android:color/black</item>
|
||||
</style>
|
||||
|
||||
<style name="ExoPlayerButton">
|
||||
<item name="android:layout_width">wrap_content</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:minWidth">40dp</item>
|
||||
</style>
|
||||
|
||||
<!-- Base application theme. -->
|
||||
<style name="AppTheme" parent="Theme.AppCompat.Light">
|
||||
<item name="android:actionBarStyle">@style/NewPipeActionbarTheme</item>
|
||||
|
|
@ -32,4 +47,5 @@
|
|||
<item name="android:background">@color/video_overlay_color</item>
|
||||
<item name="background">@color/video_overlay_color</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -33,6 +33,11 @@
|
|||
android:entryValues="@array/audio_format_list"
|
||||
android:defaultValue="@string/default_audio_format_value"/>
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="@string/use_exoplayer_key"
|
||||
android:title="@string/use_exoplayer_title"
|
||||
android:summary="@string/use_exoplayer_summary"
|
||||
android:defaultValue="false"/>
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory
|
||||
android:key="@string/settings_category_appearance"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue