Provide a VideoView for simple use cases.
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=132855091
|
|
@ -22,17 +22,10 @@ import android.net.Uri;
|
|||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.text.TextUtils;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.Surface;
|
||||
import android.view.SurfaceView;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.View.OnKeyListener;
|
||||
import android.view.View.OnTouchListener;
|
||||
import android.widget.Button;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.MediaController;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
import com.google.android.exoplayer2.C;
|
||||
|
|
@ -64,12 +57,9 @@ import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
|
|||
import com.google.android.exoplayer2.trackselection.MappingTrackSelector;
|
||||
import com.google.android.exoplayer2.trackselection.MappingTrackSelector.TrackInfo;
|
||||
import com.google.android.exoplayer2.trackselection.TrackSelection;
|
||||
import com.google.android.exoplayer2.ui.AspectRatioFrameLayout;
|
||||
import com.google.android.exoplayer2.ui.DebugTextViewHelper;
|
||||
import com.google.android.exoplayer2.ui.KeyCompatibleMediaController;
|
||||
import com.google.android.exoplayer2.ui.MediaControllerPrevNextClickListener;
|
||||
import com.google.android.exoplayer2.ui.PlayerControl;
|
||||
import com.google.android.exoplayer2.ui.SubtitleView;
|
||||
import com.google.android.exoplayer2.ui.PlaybackControlView;
|
||||
import com.google.android.exoplayer2.ui.SimpleExoPlayerView;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
|
||||
import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
|
||||
|
|
@ -84,9 +74,8 @@ import java.util.UUID;
|
|||
/**
|
||||
* An activity that plays media using {@link SimpleExoPlayer}.
|
||||
*/
|
||||
public class PlayerActivity extends Activity implements OnKeyListener, OnTouchListener,
|
||||
OnClickListener, ExoPlayer.EventListener, SimpleExoPlayer.VideoListener,
|
||||
MappingTrackSelector.EventListener {
|
||||
public class PlayerActivity extends Activity implements OnClickListener, ExoPlayer.EventListener,
|
||||
MappingTrackSelector.EventListener, PlaybackControlView.VisibilityListener {
|
||||
|
||||
public static final String DRM_SCHEME_UUID_EXTRA = "drm_scheme_uuid";
|
||||
public static final String DRM_LICENSE_URL = "drm_license_url";
|
||||
|
|
@ -109,14 +98,9 @@ public class PlayerActivity extends Activity implements OnKeyListener, OnTouchLi
|
|||
|
||||
private Handler mainHandler;
|
||||
private EventLogger eventLogger;
|
||||
private MediaController mediaController;
|
||||
private View rootView;
|
||||
private SimpleExoPlayerView simpleExoPlayerView;
|
||||
private LinearLayout debugRootView;
|
||||
private View shutterView;
|
||||
private AspectRatioFrameLayout videoFrame;
|
||||
private SurfaceView surfaceView;
|
||||
private TextView debugTextView;
|
||||
private SubtitleView subtitleView;
|
||||
private Button retryButton;
|
||||
|
||||
private String userAgent;
|
||||
|
|
@ -144,21 +128,16 @@ public class PlayerActivity extends Activity implements OnKeyListener, OnTouchLi
|
|||
}
|
||||
|
||||
setContentView(R.layout.player_activity);
|
||||
rootView = findViewById(R.id.root);
|
||||
rootView.setOnTouchListener(this);
|
||||
rootView.setOnKeyListener(this);
|
||||
shutterView = findViewById(R.id.shutter);
|
||||
View rootView = findViewById(R.id.root);
|
||||
rootView.setOnClickListener(this);
|
||||
debugRootView = (LinearLayout) findViewById(R.id.controls_root);
|
||||
videoFrame = (AspectRatioFrameLayout) findViewById(R.id.video_frame);
|
||||
surfaceView = (SurfaceView) findViewById(R.id.surface_view);
|
||||
debugTextView = (TextView) findViewById(R.id.debug_text_view);
|
||||
subtitleView = (SubtitleView) findViewById(R.id.subtitles);
|
||||
subtitleView.setUserDefaultStyle();
|
||||
subtitleView.setUserDefaultTextSize();
|
||||
mediaController = new KeyCompatibleMediaController(this);
|
||||
mediaController.setPrevNextListeners(this, this);
|
||||
retryButton = (Button) findViewById(R.id.retry_button);
|
||||
retryButton.setOnClickListener(this);
|
||||
|
||||
simpleExoPlayerView = (SimpleExoPlayerView) findViewById(R.id.player_view);
|
||||
simpleExoPlayerView.setControllerVisibilityListener(this);
|
||||
simpleExoPlayerView.requestFocus();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -211,26 +190,6 @@ public class PlayerActivity extends Activity implements OnKeyListener, OnTouchLi
|
|||
}
|
||||
}
|
||||
|
||||
// OnTouchListener methods
|
||||
|
||||
@Override
|
||||
public boolean onTouch(View view, MotionEvent motionEvent) {
|
||||
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
|
||||
toggleControlsVisibility();
|
||||
} else if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
|
||||
view.performClick();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// OnKeyListener methods
|
||||
|
||||
@Override
|
||||
public boolean onKey(View v, int keyCode, KeyEvent event) {
|
||||
return keyCode != KeyEvent.KEYCODE_BACK && keyCode != KeyEvent.KEYCODE_ESCAPE
|
||||
&& keyCode != KeyEvent.KEYCODE_MENU && mediaController.dispatchKeyEvent(event);
|
||||
}
|
||||
|
||||
// OnClickListener methods
|
||||
|
||||
@Override
|
||||
|
|
@ -243,6 +202,13 @@ public class PlayerActivity extends Activity implements OnKeyListener, OnTouchLi
|
|||
}
|
||||
}
|
||||
|
||||
// PlaybackControlView.VisibilityListener implementation
|
||||
|
||||
@Override
|
||||
public void onVisibilityChange(int visibility) {
|
||||
debugRootView.setVisibility(visibility);
|
||||
}
|
||||
|
||||
// Internal methods
|
||||
|
||||
private void initializePlayer() {
|
||||
|
|
@ -279,9 +245,7 @@ public class PlayerActivity extends Activity implements OnKeyListener, OnTouchLi
|
|||
player.setAudioDebugListener(eventLogger);
|
||||
player.setVideoDebugListener(eventLogger);
|
||||
player.setId3Output(eventLogger);
|
||||
player.setTextOutput(subtitleView);
|
||||
player.setVideoListener(this);
|
||||
player.setVideoSurfaceView(surfaceView);
|
||||
simpleExoPlayerView.setPlayer(player);
|
||||
if (shouldRestorePosition) {
|
||||
if (playerPosition == C.TIME_UNSET) {
|
||||
player.seekToDefaultPosition(playerWindow);
|
||||
|
|
@ -290,10 +254,6 @@ public class PlayerActivity extends Activity implements OnKeyListener, OnTouchLi
|
|||
}
|
||||
}
|
||||
player.setPlayWhenReady(true);
|
||||
mediaController.setMediaPlayer(new PlayerControl(player));
|
||||
mediaController.setPrevNextListeners(new MediaControllerPrevNextClickListener(player, true),
|
||||
new MediaControllerPrevNextClickListener(player, false));
|
||||
mediaController.setAnchorView(rootView);
|
||||
debugViewHelper = new DebugTextViewHelper(player, debugTextView);
|
||||
debugViewHelper.start();
|
||||
playerNeedsSource = true;
|
||||
|
|
@ -369,7 +329,6 @@ public class PlayerActivity extends Activity implements OnKeyListener, OnTouchLi
|
|||
|
||||
private void releasePlayer() {
|
||||
if (player != null) {
|
||||
shutterView.setVisibility(View.VISIBLE);
|
||||
debugViewHelper.stop();
|
||||
debugViewHelper = null;
|
||||
shouldRestorePosition = false;
|
||||
|
|
@ -428,10 +387,7 @@ public class PlayerActivity extends Activity implements OnKeyListener, OnTouchLi
|
|||
|
||||
@Override
|
||||
public void onPositionDiscontinuity() {
|
||||
if (mediaController.isShowing()) {
|
||||
// The MediaController is visible, so force it to show the updated position immediately.
|
||||
mediaController.show();
|
||||
}
|
||||
// Do nothing.
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -472,19 +428,6 @@ public class PlayerActivity extends Activity implements OnKeyListener, OnTouchLi
|
|||
showControls();
|
||||
}
|
||||
|
||||
// SimpleExoPlayer.VideoListener implementation
|
||||
|
||||
@Override
|
||||
public void onVideoSizeChanged(int width, int height, int unappliedRotationDegrees,
|
||||
float pixelWidthAspectRatio) {
|
||||
videoFrame.setAspectRatio(height == 0 ? 1 : (width * pixelWidthAspectRatio) / height);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRenderedFirstFrame(Surface surface) {
|
||||
shutterView.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
// MappingTrackSelector.EventListener implementation
|
||||
|
||||
@Override
|
||||
|
|
@ -496,17 +439,6 @@ public class PlayerActivity extends Activity implements OnKeyListener, OnTouchLi
|
|||
if (trackInfo.hasOnlyUnplayableTracks(C.TRACK_TYPE_AUDIO)) {
|
||||
showToast(R.string.error_unsupported_audio);
|
||||
}
|
||||
boolean renderingVideo = false;
|
||||
for (int i = 0; i < trackInfo.rendererCount; i++) {
|
||||
if (player.getRendererType(i) == C.TRACK_TYPE_VIDEO
|
||||
&& trackInfo.getTrackSelection(i) != null) {
|
||||
renderingVideo = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!renderingVideo) {
|
||||
shutterView.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
// User controls
|
||||
|
|
@ -553,24 +485,8 @@ public class PlayerActivity extends Activity implements OnKeyListener, OnTouchLi
|
|||
}
|
||||
}
|
||||
|
||||
private void toggleControlsVisibility() {
|
||||
if (mediaController.isShowing()) {
|
||||
mediaController.hide();
|
||||
debugRootView.setVisibility(View.GONE);
|
||||
} else {
|
||||
showControls();
|
||||
}
|
||||
}
|
||||
|
||||
private void showControls() {
|
||||
debugRootView.setVisibility(View.VISIBLE);
|
||||
// TODO: Remove this hack when transitioning to our own playback controls.
|
||||
mainHandler.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
mediaController.show(0);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void showToast(int messageId) {
|
||||
|
|
|
|||
|
|
@ -21,28 +21,10 @@
|
|||
android:layout_height="match_parent"
|
||||
android:keepScreenOn="true">
|
||||
|
||||
<com.google.android.exoplayer2.ui.AspectRatioFrameLayout
|
||||
android:id="@+id/video_frame"
|
||||
<com.google.android.exoplayer2.ui.SimpleExoPlayerView android:id="@+id/player_view"
|
||||
android:focusable="true"
|
||||
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.exoplayer2.ui.SubtitleView
|
||||
android:id="@+id/subtitles"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
</com.google.android.exoplayer2.ui.AspectRatioFrameLayout>
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
|||
|
|
@ -86,6 +86,13 @@ public final class SimpleExoPlayer implements ExoPlayer {
|
|||
*/
|
||||
void onRenderedFirstFrame(Surface surface);
|
||||
|
||||
/**
|
||||
* Called when the renderer is disabled.
|
||||
*
|
||||
* @param counters {@link DecoderCounters} that were updated by the renderer.
|
||||
*/
|
||||
void onVideoDisabled(DecoderCounters counters);
|
||||
|
||||
}
|
||||
|
||||
private static final String TAG = "SimpleExoPlayer";
|
||||
|
|
@ -672,6 +679,9 @@ public final class SimpleExoPlayer implements ExoPlayer {
|
|||
|
||||
@Override
|
||||
public void onVideoDisabled(DecoderCounters counters) {
|
||||
if (videoListener != null) {
|
||||
videoListener.onVideoDisabled(counters);
|
||||
}
|
||||
if (videoDebugListener != null) {
|
||||
videoDebugListener.onVideoDisabled(counters);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,60 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) 2016 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.
|
||||
*/
|
||||
package com.google.android.exoplayer2.ui;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.KeyEvent;
|
||||
import android.widget.MediaController;
|
||||
|
||||
/**
|
||||
* An extension of {@link MediaController} with enhanced support for D-pad and media keys.
|
||||
*/
|
||||
public class KeyCompatibleMediaController extends MediaController {
|
||||
|
||||
private MediaController.MediaPlayerControl playerControl;
|
||||
|
||||
public KeyCompatibleMediaController(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMediaPlayer(MediaController.MediaPlayerControl playerControl) {
|
||||
super.setMediaPlayer(playerControl);
|
||||
this.playerControl = playerControl;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean dispatchKeyEvent(KeyEvent event) {
|
||||
int keyCode = event.getKeyCode();
|
||||
if (playerControl.canSeekForward() && (keyCode == KeyEvent.KEYCODE_MEDIA_FAST_FORWARD
|
||||
|| keyCode == KeyEvent.KEYCODE_DPAD_RIGHT)) {
|
||||
if (event.getAction() == KeyEvent.ACTION_DOWN) {
|
||||
playerControl.seekTo(playerControl.getCurrentPosition() + 15000); // milliseconds
|
||||
show();
|
||||
}
|
||||
return true;
|
||||
} else if (playerControl.canSeekBackward() && (keyCode == KeyEvent.KEYCODE_MEDIA_REWIND
|
||||
|| keyCode == KeyEvent.KEYCODE_DPAD_LEFT)) {
|
||||
if (event.getAction() == KeyEvent.ACTION_DOWN) {
|
||||
playerControl.seekTo(playerControl.getCurrentPosition() - 5000); // milliseconds
|
||||
show();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return super.dispatchKeyEvent(event);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) 2016 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.
|
||||
*/
|
||||
package com.google.android.exoplayer2.ui;
|
||||
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import com.google.android.exoplayer2.ExoPlayer;
|
||||
import com.google.android.exoplayer2.Timeline;
|
||||
|
||||
/**
|
||||
* An {@link OnClickListener} that can be passed to
|
||||
* {@link android.widget.MediaController#setPrevNextListeners(OnClickListener, OnClickListener)} to
|
||||
* make the controller's previous and next buttons seek to the previous and next windows in the
|
||||
* {@link Timeline}.
|
||||
*/
|
||||
public class MediaControllerPrevNextClickListener implements OnClickListener {
|
||||
|
||||
/**
|
||||
* If a previous button is clicked the player is seeked to the start of the previous window if the
|
||||
* playback position in the current window is less than or equal to this constant (and if a
|
||||
* previous window exists). Else the player is seeked to the start of the current window.
|
||||
*/
|
||||
private static final long MAX_POSITION_FOR_SEEK_TO_PREVIOUS = 3000;
|
||||
|
||||
private final ExoPlayer player;
|
||||
private final boolean isNext;
|
||||
|
||||
/**
|
||||
* @param player The player to operate on.
|
||||
* @param isNext True if this instance if for the "next" button. False for "previous".
|
||||
*/
|
||||
public MediaControllerPrevNextClickListener(ExoPlayer player, boolean isNext) {
|
||||
this.player = player;
|
||||
this.isNext = isNext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Timeline timeline = player.getCurrentTimeline();
|
||||
if (timeline == null) {
|
||||
return;
|
||||
}
|
||||
int currentWindowIndex = player.getCurrentWindowIndex();
|
||||
if (isNext) {
|
||||
if (currentWindowIndex < timeline.getWindowCount() - 1) {
|
||||
player.seekToDefaultPosition(currentWindowIndex + 1);
|
||||
} else if (timeline.getWindow(currentWindowIndex, new Timeline.Window(), false).isDynamic) {
|
||||
// Seek to the live edge.
|
||||
player.seekToDefaultPosition();
|
||||
}
|
||||
} else {
|
||||
if (currentWindowIndex > 0
|
||||
&& player.getCurrentPosition() <= MAX_POSITION_FOR_SEEK_TO_PREVIOUS) {
|
||||
player.seekToDefaultPosition(currentWindowIndex - 1);
|
||||
} else {
|
||||
player.seekTo(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,462 @@
|
|||
/*
|
||||
* Copyright (C) 2016 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.
|
||||
*/
|
||||
package com.google.android.exoplayer2.ui;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.SeekBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.google.android.exoplayer2.ExoPlaybackException;
|
||||
import com.google.android.exoplayer2.ExoPlayer;
|
||||
import com.google.android.exoplayer2.R;
|
||||
import com.google.android.exoplayer2.Timeline;
|
||||
import com.google.android.exoplayer2.util.Util;
|
||||
|
||||
import java.util.Formatter;
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* A view to control video playback of an {@link ExoPlayer}.
|
||||
*/
|
||||
public class PlaybackControlView extends FrameLayout {
|
||||
|
||||
/**
|
||||
* Listener to be notified about changes of the visibility of the UI control.
|
||||
*/
|
||||
public interface VisibilityListener {
|
||||
/**
|
||||
* Called after the visibility changed.
|
||||
*
|
||||
* @param visibility The visibility value of the UI control after having changed.
|
||||
*/
|
||||
void onVisibilityChange(int visibility);
|
||||
}
|
||||
|
||||
public static final int DEFAULT_FAST_FORWARD_MS = 15000;
|
||||
public static final int DEFAULT_REWIND_MS = 5000;
|
||||
public static final int DEFAULT_SHOW_DURATION_MS = 5000;
|
||||
private static final long MAX_POSITION_FOR_SEEK_TO_PREVIOUS = 3000;
|
||||
|
||||
private ExoPlayer player;
|
||||
|
||||
private final ComponentListener componentListener;
|
||||
private final View previousButton;
|
||||
private final View nextButton;
|
||||
private final ImageButton playButton;
|
||||
private final TextView time;
|
||||
private final TextView timeCurrent;
|
||||
private final SeekBar progressBar;
|
||||
private final View fastForwardButton;
|
||||
private final View rewindButton;
|
||||
private VisibilityListener visibilityListener;
|
||||
private final StringBuilder formatBuilder;
|
||||
private final Formatter formatter;
|
||||
|
||||
private final Timeline.Window currentWindow = new Timeline.Window();
|
||||
private boolean dragging;
|
||||
private boolean isProgressUpdating;
|
||||
private int rewindMs = DEFAULT_REWIND_MS;
|
||||
private int fastForwardMs = DEFAULT_FAST_FORWARD_MS;
|
||||
private int showDuration = DEFAULT_SHOW_DURATION_MS;
|
||||
|
||||
private final Runnable updateProgressAction = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
long pos = updateProgress();
|
||||
if (!dragging && isVisible() && isPlaying()) {
|
||||
postDelayed(updateProgressAction, 1000 - (pos % 1000));
|
||||
} else {
|
||||
isProgressUpdating = false;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private final Runnable hideAction = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
hide();
|
||||
}
|
||||
};
|
||||
|
||||
public PlaybackControlView(Context context) {
|
||||
this(context, null);
|
||||
}
|
||||
|
||||
public PlaybackControlView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
|
||||
formatBuilder = new StringBuilder();
|
||||
formatter = new Formatter(formatBuilder, Locale.getDefault());
|
||||
componentListener = new ComponentListener();
|
||||
|
||||
LayoutInflater.from(context).inflate(R.layout.playback_control_view, this);
|
||||
|
||||
time = (TextView) findViewById(R.id.time);
|
||||
timeCurrent = (TextView) findViewById(R.id.time_current);
|
||||
progressBar = (SeekBar) findViewById(R.id.mediacontroller_progress);
|
||||
progressBar.setOnSeekBarChangeListener(componentListener);
|
||||
progressBar.setMax(1000);
|
||||
|
||||
playButton = (ImageButton) findViewById(R.id.pause);
|
||||
playButton.setOnClickListener(componentListener);
|
||||
previousButton = findViewById(R.id.prev);
|
||||
previousButton.setOnClickListener(componentListener);
|
||||
nextButton = findViewById(R.id.next);
|
||||
nextButton.setOnClickListener(componentListener);
|
||||
rewindButton = findViewById(R.id.rew);
|
||||
rewindButton.setOnClickListener(componentListener);
|
||||
fastForwardButton = findViewById(R.id.ffwd);
|
||||
fastForwardButton.setOnClickListener(componentListener);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the {@link ExoPlayer} to control.
|
||||
*
|
||||
* @param player the {@code ExoPlayer} to control.
|
||||
*/
|
||||
public void setPlayer(ExoPlayer player) {
|
||||
if (this.player != null) {
|
||||
this.player.removeListener(componentListener);
|
||||
}
|
||||
this.player = player;
|
||||
if (player != null) {
|
||||
player.addListener(componentListener);
|
||||
}
|
||||
updatePlayPauseButton();
|
||||
updateTime();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set the {@link VisibilityListener}.
|
||||
*
|
||||
* @param listener The listener to be notified about visibility changes.
|
||||
*/
|
||||
public void setVisibilityListener(VisibilityListener listener) {
|
||||
this.visibilityListener = listener;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the duration to rewind in milliseconds.
|
||||
*
|
||||
* @param rewindMs Duration to rewind in milliseconds.
|
||||
*/
|
||||
public void setRewindMs(int rewindMs) {
|
||||
this.rewindMs = rewindMs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the duration to fast forward in milliseconds.
|
||||
*
|
||||
* @param fastForwardMs Duration to fast forward in milliseconds.
|
||||
*/
|
||||
public void setFastForwardMs(int fastForwardMs) {
|
||||
this.fastForwardMs = fastForwardMs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the duration to show the playback control in milliseconds.
|
||||
*
|
||||
* @param showDuration Duration in milliseconds.
|
||||
*/
|
||||
public void setShowDuration(int showDuration) {
|
||||
this.showDuration = showDuration;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the controller for the duration set by {@link #setShowDuration(int)} or
|
||||
* for {@link #DEFAULT_SHOW_DURATION_MS} in milliseconds if not yet set.
|
||||
*/
|
||||
public void show() {
|
||||
show(showDuration);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the controller for the given {@code duration} in milliseconds. If {@code duration} is 0
|
||||
* the controller is shown until {@code hide()} is called.
|
||||
*
|
||||
* @param duration number of milliseconds the controller is shown.
|
||||
*/
|
||||
public void show(int duration) {
|
||||
setVisibility(VISIBLE);
|
||||
if (visibilityListener != null) {
|
||||
visibilityListener.onVisibilityChange(getVisibility());
|
||||
}
|
||||
isProgressUpdating = true;
|
||||
post(updateProgressAction);
|
||||
removeCallbacks(hideAction);
|
||||
showDuration = duration;
|
||||
if (duration > 0) {
|
||||
postDelayed(hideAction, duration);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Hide the controller.
|
||||
*/
|
||||
public void hide() {
|
||||
setVisibility(GONE);
|
||||
if (visibilityListener != null) {
|
||||
visibilityListener.onVisibilityChange(getVisibility());
|
||||
}
|
||||
removeCallbacks(updateProgressAction);
|
||||
removeCallbacks(hideAction);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns {@code true} if the controller is currently visible or {@code false} otherwise.
|
||||
*
|
||||
* @return {@code true} if shown or {@code false}.
|
||||
*/
|
||||
public boolean isVisible() {
|
||||
return getVisibility() == VISIBLE;
|
||||
}
|
||||
|
||||
private void hideDeferred() {
|
||||
removeCallbacks(hideAction);
|
||||
if (showDuration != 0) {
|
||||
postDelayed(hideAction, showDuration);
|
||||
}
|
||||
}
|
||||
|
||||
private void updatePlayPauseButton() {
|
||||
playButton.setImageResource(player != null && player.getPlayWhenReady()
|
||||
? R.drawable.ic_media_pause : R.drawable.ic_media_play);
|
||||
}
|
||||
|
||||
private void updateNavigationButtons() {
|
||||
if (player.getCurrentTimeline() == null || player.getCurrentTimeline().getWindowCount() < 2) {
|
||||
previousButton.setVisibility(GONE);
|
||||
nextButton.setVisibility(GONE);
|
||||
} else if (player.getCurrentWindowIndex() == 0) {
|
||||
disableView(previousButton);
|
||||
enableViews(nextButton);
|
||||
} else if (player.getCurrentWindowIndex() == player.getCurrentTimeline().getWindowCount() - 1) {
|
||||
enableViews(previousButton);
|
||||
disableView(nextButton);
|
||||
} else {
|
||||
enableViews(previousButton, nextButton);
|
||||
}
|
||||
}
|
||||
|
||||
private void disableView(View view) {
|
||||
view.setEnabled(false);
|
||||
if (Util.SDK_INT >= 11) {
|
||||
view.setAlpha(0.3f);
|
||||
view.setVisibility(VISIBLE);
|
||||
} else {
|
||||
view.setVisibility(INVISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
private void enableViews(View... views) {
|
||||
for (View view : views) {
|
||||
view.setEnabled(true);
|
||||
if (Util.SDK_INT >= 11) {
|
||||
view.setAlpha(1f);
|
||||
view.setVisibility(VISIBLE);
|
||||
} else {
|
||||
view.setVisibility(VISIBLE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void updateUiForLiveStream() {
|
||||
int visibility = player.getCurrentTimeline() != null && player.getCurrentTimeline()
|
||||
.getWindow(player.getCurrentWindowIndex(), currentWindow).isDynamic ? GONE
|
||||
: VISIBLE;
|
||||
progressBar.setVisibility(visibility);
|
||||
timeCurrent.setVisibility(visibility);
|
||||
time.setVisibility(visibility);
|
||||
fastForwardButton.setVisibility(visibility);
|
||||
rewindButton.setVisibility(visibility);
|
||||
}
|
||||
|
||||
private long updateProgress() {
|
||||
if (player == null || dragging) {
|
||||
return 0;
|
||||
}
|
||||
long position = player.getCurrentPosition();
|
||||
long duration = player.getDuration();
|
||||
if (progressBar != null) {
|
||||
if (duration > 0) {
|
||||
progressBar.setProgress((int) (1000 * position / duration));
|
||||
}
|
||||
progressBar.setSecondaryProgress(player.getBufferedPercentage() * 10);
|
||||
}
|
||||
updateTime();
|
||||
return position;
|
||||
}
|
||||
|
||||
private void updateTime() {
|
||||
time.setText(stringForTime(player == null ? 0 : player.getDuration()));
|
||||
timeCurrent.setText(stringForTime(player == null ? 0 : player.getCurrentPosition()));
|
||||
}
|
||||
|
||||
private String stringForTime(long timeMs) {
|
||||
long totalSeconds = timeMs / 1000;
|
||||
long seconds = totalSeconds % 60;
|
||||
long minutes = (totalSeconds / 60) % 60;
|
||||
long hours = totalSeconds / 3600;
|
||||
|
||||
formatBuilder.setLength(0);
|
||||
|
||||
return hours > 0 ? formatter.format("%d:%02d:%02d", hours, minutes, seconds).toString()
|
||||
: formatter.format("%02d:%02d", minutes, seconds).toString();
|
||||
}
|
||||
|
||||
private boolean isPlaying() {
|
||||
return player != null && player.getPlayWhenReady() && (player.getPlaybackState()
|
||||
== ExoPlayer.STATE_READY || player.getPlaybackState() == ExoPlayer.STATE_BUFFERING);
|
||||
}
|
||||
|
||||
private void previous() {
|
||||
int currentWindowIndex = player.getCurrentWindowIndex();
|
||||
if (currentWindowIndex > 0 && player.getCurrentPosition()
|
||||
<= MAX_POSITION_FOR_SEEK_TO_PREVIOUS) {
|
||||
player.seekToDefaultPosition(currentWindowIndex - 1);
|
||||
} else {
|
||||
player.seekTo(0);
|
||||
}
|
||||
}
|
||||
|
||||
private void next() {
|
||||
int currentWindowIndex = player.getCurrentWindowIndex();
|
||||
Timeline currentTimeline = player.getCurrentTimeline();
|
||||
if (currentTimeline != null && currentWindowIndex < currentTimeline.getWindowCount() - 1) {
|
||||
player.seekToDefaultPosition(currentWindowIndex + 1);
|
||||
}
|
||||
}
|
||||
|
||||
private void rewind() {
|
||||
Timeline currentTimeline = player.getCurrentTimeline();
|
||||
currentTimeline.getWindow(player.getCurrentWindowIndex(), currentWindow);
|
||||
player.seekTo(Math.max(player.getCurrentPosition() - rewindMs, 0));
|
||||
}
|
||||
|
||||
private void fastForward() {
|
||||
player.seekTo(Math.min(player.getCurrentPosition() + fastForwardMs, player.getDuration()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean dispatchKeyEvent(KeyEvent event) {
|
||||
if (player == null || event.getAction() != KeyEvent.ACTION_DOWN) {
|
||||
return super.dispatchKeyEvent(event);
|
||||
}
|
||||
switch (event.getKeyCode()) {
|
||||
case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
|
||||
case KeyEvent.KEYCODE_DPAD_RIGHT:
|
||||
fastForward();
|
||||
break;
|
||||
case KeyEvent.KEYCODE_MEDIA_REWIND:
|
||||
case KeyEvent.KEYCODE_DPAD_LEFT:
|
||||
rewind();
|
||||
break;
|
||||
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
|
||||
player.setPlayWhenReady(!player.getPlayWhenReady());
|
||||
break;
|
||||
case KeyEvent.KEYCODE_MEDIA_PLAY:
|
||||
player.setPlayWhenReady(true);
|
||||
break;
|
||||
case KeyEvent.KEYCODE_MEDIA_PAUSE:
|
||||
player.setPlayWhenReady(false);
|
||||
break;
|
||||
case KeyEvent.KEYCODE_MEDIA_NEXT:
|
||||
next();
|
||||
break;
|
||||
case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
|
||||
previous();
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
show();
|
||||
return true;
|
||||
}
|
||||
|
||||
private final class ComponentListener implements ExoPlayer.EventListener,
|
||||
SeekBar.OnSeekBarChangeListener, OnClickListener {
|
||||
@Override
|
||||
public void onStartTrackingTouch(SeekBar seekBar) {
|
||||
removeCallbacks(hideAction);
|
||||
dragging = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
|
||||
timeCurrent.setText(stringForTime(player == null ? 0 : player.getDuration() * progress
|
||||
/ 1000));
|
||||
progressBar.setSecondaryProgress(player == null ? 0 : player.getBufferedPercentage() * 10);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStopTrackingTouch(SeekBar seekBar) {
|
||||
dragging = false;
|
||||
player.seekTo(player.getDuration() * seekBar.getProgress() / 1000);
|
||||
hideDeferred();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
|
||||
if (isPlaying() && !isProgressUpdating) {
|
||||
isProgressUpdating = true;
|
||||
post(updateProgressAction);
|
||||
}
|
||||
updatePlayPauseButton();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPositionDiscontinuity() {
|
||||
updateNavigationButtons();
|
||||
updateProgress();
|
||||
updateUiForLiveStream();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTimelineChanged(Timeline timeline, Object manifest) { /* do nothing. */ }
|
||||
|
||||
@Override
|
||||
public void onLoadingChanged(boolean isLoading) { /* do nothing */ }
|
||||
|
||||
@Override
|
||||
public void onPlayerError(ExoPlaybackException error) { /* do nothing */ }
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
Timeline currentTimeline = player.getCurrentTimeline();
|
||||
if (nextButton == view) {
|
||||
next();
|
||||
} else if (previousButton == view) {
|
||||
previous();
|
||||
} else if (fastForwardButton == view) {
|
||||
fastForward();
|
||||
} else if (rewindButton == view && currentTimeline != null) {
|
||||
rewind();
|
||||
} else if (playButton == view) {
|
||||
player.setPlayWhenReady(!player.getPlayWhenReady());
|
||||
}
|
||||
hideDeferred();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,105 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) 2016 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.
|
||||
*/
|
||||
package com.google.android.exoplayer2.ui;
|
||||
|
||||
import android.widget.MediaController.MediaPlayerControl;
|
||||
import com.google.android.exoplayer2.C;
|
||||
import com.google.android.exoplayer2.ExoPlayer;
|
||||
import com.google.android.exoplayer2.audio.MediaCodecAudioRenderer;
|
||||
|
||||
/**
|
||||
* An implementation of {@link MediaPlayerControl} for controlling an {@link ExoPlayer} instance.
|
||||
* This class is provided for convenience, however it is expected that most applications will
|
||||
* implement their own player controls and therefore not require this class.
|
||||
*/
|
||||
public class PlayerControl implements MediaPlayerControl {
|
||||
|
||||
private final ExoPlayer player;
|
||||
|
||||
/**
|
||||
* @param player The player to control.
|
||||
*/
|
||||
public PlayerControl(ExoPlayer player) {
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPause() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canSeekBackward() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canSeekForward() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* This is an unsupported operation.
|
||||
* <p>
|
||||
* Application of audio effects is dependent on the audio renderer used. When using
|
||||
* {@link MediaCodecAudioRenderer}, the recommended approach is to extend the class and override
|
||||
* {@link MediaCodecAudioRenderer#onAudioSessionId}.
|
||||
*
|
||||
* @throws UnsupportedOperationException Always thrown.
|
||||
*/
|
||||
@Override
|
||||
public int getAudioSessionId() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBufferPercentage() {
|
||||
return player.getBufferedPercentage();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCurrentPosition() {
|
||||
long position = player.getCurrentPosition();
|
||||
return position == C.TIME_UNSET ? 0 : (int) position;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDuration() {
|
||||
long duration = player.getDuration();
|
||||
return duration == C.TIME_UNSET ? 0 : (int) duration;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPlaying() {
|
||||
return player.getPlayWhenReady();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start() {
|
||||
player.setPlayWhenReady(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pause() {
|
||||
player.setPlayWhenReady(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void seekTo(int timeMillis) {
|
||||
player.seekTo(timeMillis);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,283 @@
|
|||
/*
|
||||
* Copyright (C) 2016 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.
|
||||
*/
|
||||
package com.google.android.exoplayer2.ui;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.Surface;
|
||||
import android.view.SurfaceView;
|
||||
import android.view.TextureView;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
import com.google.android.exoplayer2.ExoPlaybackException;
|
||||
import com.google.android.exoplayer2.ExoPlayer;
|
||||
import com.google.android.exoplayer2.R;
|
||||
import com.google.android.exoplayer2.SimpleExoPlayer;
|
||||
import com.google.android.exoplayer2.Timeline;
|
||||
import com.google.android.exoplayer2.decoder.DecoderCounters;
|
||||
import com.google.android.exoplayer2.text.Cue;
|
||||
import com.google.android.exoplayer2.text.TextRenderer;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Displays a video stream.
|
||||
*/
|
||||
@TargetApi(16)
|
||||
public final class SimpleExoPlayerView extends FrameLayout {
|
||||
|
||||
private final View surfaceView;
|
||||
private final View shutterView;
|
||||
private final SubtitleView subtitleLayout;
|
||||
private final AspectRatioFrameLayout layout;
|
||||
private final PlaybackControlView controller;
|
||||
private final ComponentListener componentListener;
|
||||
private SimpleExoPlayer player;
|
||||
private boolean useController = true;
|
||||
|
||||
public SimpleExoPlayerView(Context context) {
|
||||
this(context, null);
|
||||
}
|
||||
|
||||
public SimpleExoPlayerView(Context context, AttributeSet attrs) {
|
||||
this(context, attrs, 0);
|
||||
}
|
||||
|
||||
public SimpleExoPlayerView(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||
this(context, attrs, defStyleAttr, 0);
|
||||
}
|
||||
|
||||
public SimpleExoPlayerView(Context context, AttributeSet attrs, int defStyleAttr,
|
||||
int defStyleRes) {
|
||||
super(context, attrs, defStyleAttr, defStyleRes);
|
||||
|
||||
boolean useTextureView = false;
|
||||
if (attrs != null) {
|
||||
TypedArray a = context.getTheme().obtainStyledAttributes(attrs,
|
||||
R.styleable.SimpleExoPlayerView, 0, 0);
|
||||
try {
|
||||
useController = a.getBoolean(R.styleable.SimpleExoPlayerView_use_controller,
|
||||
useController);
|
||||
useTextureView = a.getBoolean(R.styleable.SimpleExoPlayerView_use_texture_view,
|
||||
useTextureView);
|
||||
} finally {
|
||||
a.recycle();
|
||||
}
|
||||
}
|
||||
|
||||
LayoutInflater.from(context).inflate(R.layout.exoplayer_video_view, this);
|
||||
|
||||
componentListener = new ComponentListener();
|
||||
layout = (AspectRatioFrameLayout) findViewById(R.id.video_frame);
|
||||
controller = (PlaybackControlView) findViewById(R.id.control);
|
||||
shutterView = findViewById(R.id.shutter);
|
||||
subtitleLayout = (SubtitleView) findViewById(R.id.subtitles);
|
||||
subtitleLayout.setUserDefaultStyle();
|
||||
subtitleLayout.setUserDefaultTextSize();
|
||||
|
||||
View view = useTextureView ? new TextureView(context) : new SurfaceView(context);
|
||||
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.MATCH_PARENT);
|
||||
view.setLayoutParams(params);
|
||||
surfaceView = view;
|
||||
layout.addView(surfaceView, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the {@link SimpleExoPlayer} to use. The {@link SimpleExoPlayer#setTextOutput} and
|
||||
* {@link SimpleExoPlayer#setVideoListener} method of the player will be called and previous
|
||||
* assignments are overridden.
|
||||
*
|
||||
* @param player The {@link SimpleExoPlayer} to use.
|
||||
*/
|
||||
public void setPlayer(SimpleExoPlayer player) {
|
||||
if (this.player != null) {
|
||||
this.player.setTextOutput(null);
|
||||
this.player.setVideoListener(null);
|
||||
this.player.removeListener(componentListener);
|
||||
this.player.setVideoSurface(null);
|
||||
}
|
||||
this.player = player;
|
||||
|
||||
if (player != null) {
|
||||
if (surfaceView instanceof TextureView) {
|
||||
player.setVideoTextureView((TextureView) surfaceView);
|
||||
} else if (surfaceView instanceof SurfaceView) {
|
||||
player.setVideoSurfaceView((SurfaceView) surfaceView);
|
||||
}
|
||||
player.setVideoListener(componentListener);
|
||||
player.addListener(componentListener);
|
||||
player.setTextOutput(componentListener);
|
||||
}
|
||||
setUseController(useController);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the {@code useController} flag which indicates whether the playback control view should
|
||||
* be used or not. If set to {@code false} the controller is never visible and is disconnected
|
||||
* from the player.
|
||||
*
|
||||
* @param useController If {@code false} the playback control is never used.
|
||||
*/
|
||||
public void setUseController(boolean useController) {
|
||||
this.useController = useController;
|
||||
if (useController) {
|
||||
controller.setPlayer(player);
|
||||
} else {
|
||||
controller.hide();
|
||||
controller.setPlayer(null);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the {@link PlaybackControlView.VisibilityListener}.
|
||||
*
|
||||
* @param listener The listener to be notified about visibility changes.
|
||||
*/
|
||||
public void setControllerVisibilityListener(PlaybackControlView.VisibilityListener listener) {
|
||||
controller.setVisibilityListener(listener);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the number of milliseconds to rewind for each step.
|
||||
*
|
||||
* @param rewindMs Rewind step in milliseconds.
|
||||
*/
|
||||
public void setRewindMs(int rewindMs) {
|
||||
controller.setRewindMs(rewindMs);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the number of milliseconds to fast forward for each step.
|
||||
*
|
||||
* @param fastForwardMs Fast forward step in milliseconds.
|
||||
*/
|
||||
public void setFastForwardMs(int fastForwardMs) {
|
||||
controller.setFastForwardMs(fastForwardMs);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the duration to show the playback control in milliseconds.
|
||||
*
|
||||
* @param showDuration Duration in milliseconds.
|
||||
*/
|
||||
public void setControlShowDuration(int showDuration) {
|
||||
controller.setShowDuration(showDuration);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the view onto which video is rendered. This is either a {@link SurfaceView} (default)
|
||||
* or a {@link TextureView} if the {@code use_texture_view} view attribute has been set to true.
|
||||
*
|
||||
* @return either a {@link SurfaceView} or a {@link TextureView}.
|
||||
*/
|
||||
public View getVideoSurfaceView() {
|
||||
return surfaceView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onTouchEvent(MotionEvent ev) {
|
||||
if (useController && ev.getActionMasked() == MotionEvent.ACTION_DOWN) {
|
||||
if (controller.isVisible()) {
|
||||
controller.hide();
|
||||
} else {
|
||||
controller.show();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean onTrackballEvent(MotionEvent ev) {
|
||||
if (!useController) {
|
||||
return false;
|
||||
}
|
||||
controller.show();
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean dispatchKeyEvent(KeyEvent event) {
|
||||
return useController ? controller.dispatchKeyEvent(event) : super.dispatchKeyEvent(event);
|
||||
}
|
||||
|
||||
private final class ComponentListener implements SimpleExoPlayer.VideoListener,
|
||||
TextRenderer.Output, ExoPlayer.EventListener {
|
||||
|
||||
// TextRenderer.Output implementation
|
||||
|
||||
@Override
|
||||
public void onCues(List<Cue> cues) {
|
||||
subtitleLayout.onCues(cues);
|
||||
}
|
||||
|
||||
// SimpleExoPlayer.VideoListener implementation
|
||||
|
||||
@Override
|
||||
public void onVideoSizeChanged(int width, int height, int unappliedRotationDegrees,
|
||||
float pixelWidthHeightRatio) {
|
||||
layout.setAspectRatio(height == 0 ? 1 : (width * pixelWidthHeightRatio) / height);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRenderedFirstFrame(Surface surface) {
|
||||
shutterView.setVisibility(GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onVideoDisabled(DecoderCounters counters) {
|
||||
shutterView.setVisibility(VISIBLE);
|
||||
}
|
||||
|
||||
// ExoPlayer.EventListener implementation
|
||||
|
||||
@Override
|
||||
public void onLoadingChanged(boolean isLoading) {
|
||||
// Do nothing.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
|
||||
if (useController && playbackState == ExoPlayer.STATE_ENDED) {
|
||||
controller.show(0);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerError(ExoPlaybackException e) {
|
||||
// Do nothing.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPositionDiscontinuity() {
|
||||
// Do nothing.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTimelineChanged(Timeline timeline, Object manifest) {
|
||||
// Do nothing.
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
BIN
library/src/main/res/drawable-hdpi/ic_media_ff.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
library/src/main/res/drawable-hdpi/ic_media_next.png
Normal file
|
After Width: | Height: | Size: 1 KiB |
BIN
library/src/main/res/drawable-hdpi/ic_media_pause.png
Normal file
|
After Width: | Height: | Size: 599 B |
BIN
library/src/main/res/drawable-hdpi/ic_media_play.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
library/src/main/res/drawable-hdpi/ic_media_previous.png
Normal file
|
After Width: | Height: | Size: 1 KiB |
BIN
library/src/main/res/drawable-hdpi/ic_media_rew.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
library/src/main/res/drawable-ldpi/ic_media_ff.png
Normal file
|
After Width: | Height: | Size: 886 B |
BIN
library/src/main/res/drawable-ldpi/ic_media_next.png
Normal file
|
After Width: | Height: | Size: 735 B |
BIN
library/src/main/res/drawable-ldpi/ic_media_pause.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
library/src/main/res/drawable-ldpi/ic_media_play.png
Normal file
|
After Width: | Height: | Size: 673 B |
BIN
library/src/main/res/drawable-ldpi/ic_media_previous.png
Normal file
|
After Width: | Height: | Size: 770 B |
BIN
library/src/main/res/drawable-ldpi/ic_media_rew.png
Normal file
|
After Width: | Height: | Size: 906 B |
BIN
library/src/main/res/drawable-mdpi/ic_media_ff.png
Normal file
|
After Width: | Height: | Size: 929 B |
BIN
library/src/main/res/drawable-mdpi/ic_media_next.png
Normal file
|
After Width: | Height: | Size: 843 B |
BIN
library/src/main/res/drawable-mdpi/ic_media_pause.png
Normal file
|
After Width: | Height: | Size: 540 B |
BIN
library/src/main/res/drawable-mdpi/ic_media_play.png
Normal file
|
After Width: | Height: | Size: 897 B |
BIN
library/src/main/res/drawable-mdpi/ic_media_previous.png
Normal file
|
After Width: | Height: | Size: 837 B |
BIN
library/src/main/res/drawable-mdpi/ic_media_rew.png
Normal file
|
After Width: | Height: | Size: 997 B |
BIN
library/src/main/res/drawable-xhdpi/ic_media_ff.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
library/src/main/res/drawable-xhdpi/ic_media_next.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
library/src/main/res/drawable-xhdpi/ic_media_pause.png
Normal file
|
After Width: | Height: | Size: 685 B |
BIN
library/src/main/res/drawable-xhdpi/ic_media_play.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
library/src/main/res/drawable-xhdpi/ic_media_previous.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
library/src/main/res/drawable-xhdpi/ic_media_rew.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
library/src/main/res/drawable-xxhdpi/ic_media_ff.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
library/src/main/res/drawable-xxhdpi/ic_media_next.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
library/src/main/res/drawable-xxhdpi/ic_media_pause.png
Normal file
|
After Width: | Height: | Size: 611 B |
BIN
library/src/main/res/drawable-xxhdpi/ic_media_play.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
library/src/main/res/drawable-xxhdpi/ic_media_previous.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
library/src/main/res/drawable-xxhdpi/ic_media_rew.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
40
library/src/main/res/layout/exoplayer_video_view.xml
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2016 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"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_width="match_parent">
|
||||
|
||||
<com.google.android.exoplayer2.ui.AspectRatioFrameLayout android:id="@+id/video_frame"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center">
|
||||
|
||||
<com.google.android.exoplayer2.ui.SubtitleView android:id="@+id/subtitles"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
</com.google.android.exoplayer2.ui.AspectRatioFrameLayout>
|
||||
|
||||
<View android:id="@+id/shutter"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@android:color/black"/>
|
||||
|
||||
<com.google.android.exoplayer2.ui.PlaybackControlView android:id="@+id/control"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
</FrameLayout>
|
||||
86
library/src/main/res/layout/playback_control_view.xml
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2016 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.
|
||||
-->
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="#CC000000"
|
||||
android:layout_gravity="bottom"
|
||||
android:orientation="vertical"
|
||||
android:layoutDirection="ltr">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:paddingTop="4dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageButton android:id="@+id/prev"
|
||||
style="@style/MediaButton.Previous"
|
||||
android:contentDescription="@string/prev_description"
|
||||
android:visibility="gone"/>
|
||||
<ImageButton android:id="@+id/rew"
|
||||
style="@style/MediaButton.Rew"
|
||||
android:contentDescription="@string/rew_description"/>
|
||||
<ImageButton android:id="@+id/pause"
|
||||
style="@style/MediaButton.Pause"
|
||||
android:contentDescription="@string/pause_description"/>
|
||||
<ImageButton android:id="@+id/ffwd"
|
||||
style="@style/MediaButton.Ffwd"
|
||||
android:contentDescription="@string/ffw_description"/>
|
||||
<ImageButton android:id="@+id/next"
|
||||
style="@style/MediaButton.Next"
|
||||
android:contentDescription="@string/prev_description"
|
||||
android:visibility="gone"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView android:id="@+id/time_current"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingStart="4dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingEnd="4dp"
|
||||
android:textColor="#FFBEBEBE"/>
|
||||
|
||||
<SeekBar android:id="@+id/mediacontroller_progress"
|
||||
style="?android:attr/progressBarStyleHorizontal"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="32dp"/>
|
||||
|
||||
<TextView android:id="@+id/time"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingEnd="4dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingStart="4dp"
|
||||
android:textColor="#FFBEBEBE"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
25
library/src/main/res/values-af/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Vorige snit"</string>
|
||||
<string name="next_description">"Volgende snit"</string>
|
||||
<string name="pause_description">"Wag"</string>
|
||||
<string name="play_description">"Speel"</string>
|
||||
<string name="stop_description">"Stop"</string>
|
||||
<string name="rew_description">"Spoel terug"</string>
|
||||
<string name="ffw_description">"Vinnig vorentoe"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-am/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"ቀዳሚ ትራክ"</string>
|
||||
<string name="next_description">"ቀጣይ ትራክ"</string>
|
||||
<string name="pause_description">"ለአፍታ አቁም"</string>
|
||||
<string name="play_description">"አጫውት"</string>
|
||||
<string name="stop_description">"አቁም"</string>
|
||||
<string name="rew_description">"ወደኋላ አጠንጥን"</string>
|
||||
<string name="ffw_description">"በፍጥነት አሳልፍ"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-ar/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"المقطع الصوتي السابق"</string>
|
||||
<string name="next_description">"المقطع الصوتي التالي"</string>
|
||||
<string name="pause_description">"إيقاف مؤقت"</string>
|
||||
<string name="play_description">"تشغيل"</string>
|
||||
<string name="stop_description">"إيقاف"</string>
|
||||
<string name="rew_description">"إرجاع"</string>
|
||||
<string name="ffw_description">"تقديم سريع"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-az-rAZ/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Öncəki trek"</string>
|
||||
<string name="next_description">"Növbəti trek"</string>
|
||||
<string name="pause_description">"Pauza"</string>
|
||||
<string name="play_description">"Oyun"</string>
|
||||
<string name="stop_description">"Dayandır"</string>
|
||||
<string name="rew_description">"Geri sarıma"</string>
|
||||
<string name="ffw_description">"Sürətlə irəli"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-b+sr+Latn/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Prethodna pesma"</string>
|
||||
<string name="next_description">"Sledeća pesma"</string>
|
||||
<string name="pause_description">"Pauza"</string>
|
||||
<string name="play_description">"Pusti"</string>
|
||||
<string name="stop_description">"Zaustavi"</string>
|
||||
<string name="rew_description">"Premotaj unazad"</string>
|
||||
<string name="ffw_description">"Premotaj unapred"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-be-rBY/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Папярэдні трэк"</string>
|
||||
<string name="next_description">"Наступны трэк"</string>
|
||||
<string name="pause_description">"Прыпыніць"</string>
|
||||
<string name="play_description">"Прайграць"</string>
|
||||
<string name="stop_description">"Спыніць"</string>
|
||||
<string name="rew_description">"Перамотка назад"</string>
|
||||
<string name="ffw_description">"Перамотка ўперад"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-bg/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Предишен запис"</string>
|
||||
<string name="next_description">"Следващ запис"</string>
|
||||
<string name="pause_description">"Пауза"</string>
|
||||
<string name="play_description">"Пускане"</string>
|
||||
<string name="stop_description">"Спиране"</string>
|
||||
<string name="rew_description">"Превъртане назад"</string>
|
||||
<string name="ffw_description">"Превъртане напред"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-bn-rBD/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"পূর্ববর্তী ট্র্যাক"</string>
|
||||
<string name="next_description">"পরবর্তী ট্র্যাক"</string>
|
||||
<string name="pause_description">"বিরাম দিন"</string>
|
||||
<string name="play_description">"প্লে করুন"</string>
|
||||
<string name="stop_description">"থামান"</string>
|
||||
<string name="rew_description">"গুটিয়ে নিন"</string>
|
||||
<string name="ffw_description">"দ্রুত সামনে এগোন"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-bs-rBA/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Prethodna numera"</string>
|
||||
<string name="next_description">"Sljedeća numera"</string>
|
||||
<string name="pause_description">"Pauziraj"</string>
|
||||
<string name="play_description">"Reproduciraj"</string>
|
||||
<string name="stop_description">"Zaustavi"</string>
|
||||
<string name="rew_description">"Premotaj"</string>
|
||||
<string name="ffw_description">"Ubrzaj"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-ca/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Ruta anterior"</string>
|
||||
<string name="next_description">"Ruta següent"</string>
|
||||
<string name="pause_description">"Posa en pausa"</string>
|
||||
<string name="play_description">"Reprodueix"</string>
|
||||
<string name="stop_description">"Atura"</string>
|
||||
<string name="rew_description">"Rebobina"</string>
|
||||
<string name="ffw_description">"Avança ràpidament"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-cs/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Předchozí skladba"</string>
|
||||
<string name="next_description">"Další skladba"</string>
|
||||
<string name="pause_description">"Pozastavit"</string>
|
||||
<string name="play_description">"Přehrát"</string>
|
||||
<string name="stop_description">"Zastavit"</string>
|
||||
<string name="rew_description">"Přetočit zpět"</string>
|
||||
<string name="ffw_description">"Přetočit vpřed"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-da/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Forrige nummer"</string>
|
||||
<string name="next_description">"Næste nummer"</string>
|
||||
<string name="pause_description">"Pause"</string>
|
||||
<string name="play_description">"Afspil"</string>
|
||||
<string name="stop_description">"Stop"</string>
|
||||
<string name="rew_description">"Spol tilbage"</string>
|
||||
<string name="ffw_description">"Spol frem"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-de/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Vorheriger Titel"</string>
|
||||
<string name="next_description">"Nächster Titel"</string>
|
||||
<string name="pause_description">"Pausieren"</string>
|
||||
<string name="play_description">"Wiedergabe"</string>
|
||||
<string name="stop_description">"Beenden"</string>
|
||||
<string name="rew_description">"Zurückspulen"</string>
|
||||
<string name="ffw_description">"Vorspulen"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-el/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Προηγούμενο κομμάτι"</string>
|
||||
<string name="next_description">"Επόμενο κομμάτι"</string>
|
||||
<string name="pause_description">"Παύση"</string>
|
||||
<string name="play_description">"Αναπαραγωγή"</string>
|
||||
<string name="stop_description">"Διακοπή"</string>
|
||||
<string name="rew_description">"Επαναφορά"</string>
|
||||
<string name="ffw_description">"Γρήγορη προώθηση"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-en-rAU/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Previous track"</string>
|
||||
<string name="next_description">"Next track"</string>
|
||||
<string name="pause_description">"Pause"</string>
|
||||
<string name="play_description">"Play"</string>
|
||||
<string name="stop_description">"Stop"</string>
|
||||
<string name="rew_description">"Rewind"</string>
|
||||
<string name="ffw_description">"Fast-forward"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-en-rGB/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Previous track"</string>
|
||||
<string name="next_description">"Next track"</string>
|
||||
<string name="pause_description">"Pause"</string>
|
||||
<string name="play_description">"Play"</string>
|
||||
<string name="stop_description">"Stop"</string>
|
||||
<string name="rew_description">"Rewind"</string>
|
||||
<string name="ffw_description">"Fast-forward"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-en-rIN/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Previous track"</string>
|
||||
<string name="next_description">"Next track"</string>
|
||||
<string name="pause_description">"Pause"</string>
|
||||
<string name="play_description">"Play"</string>
|
||||
<string name="stop_description">"Stop"</string>
|
||||
<string name="rew_description">"Rewind"</string>
|
||||
<string name="ffw_description">"Fast-forward"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-es-rUS/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Pista anterior"</string>
|
||||
<string name="next_description">"Siguiente pista"</string>
|
||||
<string name="pause_description">"Pausar"</string>
|
||||
<string name="play_description">"Reproducir"</string>
|
||||
<string name="stop_description">"Detener"</string>
|
||||
<string name="rew_description">"Retroceder"</string>
|
||||
<string name="ffw_description">"Avanzar"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-es/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Canción anterior"</string>
|
||||
<string name="next_description">"Siguiente canción"</string>
|
||||
<string name="pause_description">"Pausar"</string>
|
||||
<string name="play_description">"Reproducir"</string>
|
||||
<string name="stop_description">"Detener"</string>
|
||||
<string name="rew_description">"Rebobinar"</string>
|
||||
<string name="ffw_description">"Avance rápido"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-et-rEE/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Eelmine lugu"</string>
|
||||
<string name="next_description">"Järgmine lugu"</string>
|
||||
<string name="pause_description">"Peata"</string>
|
||||
<string name="play_description">"Esita"</string>
|
||||
<string name="stop_description">"Peata"</string>
|
||||
<string name="rew_description">"Keri tagasi"</string>
|
||||
<string name="ffw_description">"Keri edasi"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-eu-rES/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Aurreko pista"</string>
|
||||
<string name="next_description">"Hurrengo pista"</string>
|
||||
<string name="pause_description">"Pausatu"</string>
|
||||
<string name="play_description">"Erreproduzitu"</string>
|
||||
<string name="stop_description">"Gelditu"</string>
|
||||
<string name="rew_description">"Atzeratu"</string>
|
||||
<string name="ffw_description">"Aurreratu"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-fa/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"آهنگ قبلی"</string>
|
||||
<string name="next_description">"آهنگ بعدی"</string>
|
||||
<string name="pause_description">"مکث"</string>
|
||||
<string name="play_description">"پخش"</string>
|
||||
<string name="stop_description">"توقف"</string>
|
||||
<string name="rew_description">"عقب بردن"</string>
|
||||
<string name="ffw_description">"جلو بردن سریع"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-fi/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Edellinen raita"</string>
|
||||
<string name="next_description">"Seuraava raita"</string>
|
||||
<string name="pause_description">"Tauko"</string>
|
||||
<string name="play_description">"Toista"</string>
|
||||
<string name="stop_description">"Seis"</string>
|
||||
<string name="rew_description">"Kelaa taakse"</string>
|
||||
<string name="ffw_description">"Kelaa eteen"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-fr-rCA/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Chanson précédente"</string>
|
||||
<string name="next_description">"Chanson suivante"</string>
|
||||
<string name="pause_description">"Pause"</string>
|
||||
<string name="play_description">"Lecture"</string>
|
||||
<string name="stop_description">"Arrêter"</string>
|
||||
<string name="rew_description">"Reculer"</string>
|
||||
<string name="ffw_description">"Avance rapide"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-fr/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Piste précédente"</string>
|
||||
<string name="next_description">"Piste suivante"</string>
|
||||
<string name="pause_description">"Interrompre"</string>
|
||||
<string name="play_description">"Lire"</string>
|
||||
<string name="stop_description">"Arrêter"</string>
|
||||
<string name="rew_description">"Retour arrière"</string>
|
||||
<string name="ffw_description">"Avance rapide"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-gl-rES/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Pista anterior"</string>
|
||||
<string name="next_description">"Seguinte pista"</string>
|
||||
<string name="pause_description">"Pausar"</string>
|
||||
<string name="play_description">"Reproducir"</string>
|
||||
<string name="stop_description">"Deter"</string>
|
||||
<string name="rew_description">"Rebobinar"</string>
|
||||
<string name="ffw_description">"Avance rápido"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-gu-rIN/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"પહેલાનો ટ્રૅક"</string>
|
||||
<string name="next_description">"આગલો ટ્રૅક"</string>
|
||||
<string name="pause_description">"થોભો"</string>
|
||||
<string name="play_description">"ચલાવો"</string>
|
||||
<string name="stop_description">"રોકો"</string>
|
||||
<string name="rew_description">"રીવાઇન્ડ કરો"</string>
|
||||
<string name="ffw_description">"ઝડપી ફોરવર્ડ કરો"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-hi/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"पिछला ट्रैक"</string>
|
||||
<string name="next_description">"अगला ट्रैक"</string>
|
||||
<string name="pause_description">"रोकें"</string>
|
||||
<string name="play_description">"चलाएं"</string>
|
||||
<string name="stop_description">"बंद करें"</string>
|
||||
<string name="rew_description">"रिवाइंड करें"</string>
|
||||
<string name="ffw_description">"फ़ास्ट फ़ॉरवर्ड"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-hr/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Prethodna pjesma"</string>
|
||||
<string name="next_description">"Sljedeća pjesma"</string>
|
||||
<string name="pause_description">"Pauziraj"</string>
|
||||
<string name="play_description">"Reproduciraj"</string>
|
||||
<string name="stop_description">"Zaustavi"</string>
|
||||
<string name="rew_description">"Unatrag"</string>
|
||||
<string name="ffw_description">"Brzo unaprijed"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-hu/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Előző szám"</string>
|
||||
<string name="next_description">"Következő szám"</string>
|
||||
<string name="pause_description">"Szünet"</string>
|
||||
<string name="play_description">"Lejátszás"</string>
|
||||
<string name="stop_description">"Leállítás"</string>
|
||||
<string name="rew_description">"Visszatekerés"</string>
|
||||
<string name="ffw_description">"Előretekerés"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-hy-rAM/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Նախորդը"</string>
|
||||
<string name="next_description">"Հաջորդը"</string>
|
||||
<string name="pause_description">"Դադարեցնել"</string>
|
||||
<string name="play_description">"Նվագարկել"</string>
|
||||
<string name="stop_description">"Դադարեցնել"</string>
|
||||
<string name="rew_description">"Հետ փաթաթել"</string>
|
||||
<string name="ffw_description">"Արագ առաջ անցնել"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-in/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Lagu sebelumnya"</string>
|
||||
<string name="next_description">"Lagu berikutnya"</string>
|
||||
<string name="pause_description">"Jeda"</string>
|
||||
<string name="play_description">"Putar"</string>
|
||||
<string name="stop_description">"Berhenti"</string>
|
||||
<string name="rew_description">"Putar Ulang"</string>
|
||||
<string name="ffw_description">"Maju cepat"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-is-rIS/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Fyrra lag"</string>
|
||||
<string name="next_description">"Næsta lag"</string>
|
||||
<string name="pause_description">"Hlé"</string>
|
||||
<string name="play_description">"Spila"</string>
|
||||
<string name="stop_description">"Stöðva"</string>
|
||||
<string name="rew_description">"Spóla til baka"</string>
|
||||
<string name="ffw_description">"Spóla áfram"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-it/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Traccia precedente"</string>
|
||||
<string name="next_description">"Traccia successiva"</string>
|
||||
<string name="pause_description">"Metti in pausa"</string>
|
||||
<string name="play_description">"Riproduci"</string>
|
||||
<string name="stop_description">"Interrompi"</string>
|
||||
<string name="rew_description">"Riavvolgi"</string>
|
||||
<string name="ffw_description">"Avanti veloce"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-iw/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"הרצועה הקודמת"</string>
|
||||
<string name="next_description">"הרצועה הבאה"</string>
|
||||
<string name="pause_description">"השהה"</string>
|
||||
<string name="play_description">"הפעל"</string>
|
||||
<string name="stop_description">"הפסק"</string>
|
||||
<string name="rew_description">"הרץ אחורה"</string>
|
||||
<string name="ffw_description">"הרץ קדימה"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-ja/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"前のトラック"</string>
|
||||
<string name="next_description">"次のトラック"</string>
|
||||
<string name="pause_description">"一時停止"</string>
|
||||
<string name="play_description">"再生"</string>
|
||||
<string name="stop_description">"停止"</string>
|
||||
<string name="rew_description">"巻き戻し"</string>
|
||||
<string name="ffw_description">"早送り"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-ka-rGE/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"წინა ჩანაწერი"</string>
|
||||
<string name="next_description">"შემდეგი ჩანაწერი"</string>
|
||||
<string name="pause_description">"პაუზა"</string>
|
||||
<string name="play_description">"დაკვრა"</string>
|
||||
<string name="stop_description">"შეწყვეტა"</string>
|
||||
<string name="rew_description">"უკან გადახვევა"</string>
|
||||
<string name="ffw_description">"წინ გადახვევა"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-kk-rKZ/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Алдыңғы трек"</string>
|
||||
<string name="next_description">"Келесі трек"</string>
|
||||
<string name="pause_description">"Кідірту"</string>
|
||||
<string name="play_description">"Ойнату"</string>
|
||||
<string name="stop_description">"Тоқтату"</string>
|
||||
<string name="rew_description">"Кері айналдыру"</string>
|
||||
<string name="ffw_description">"Жылдам алға айналдыру"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-km-rKH/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"បទមុន"</string>
|
||||
<string name="next_description">"បទបន្ទាប់"</string>
|
||||
<string name="pause_description">"ផ្អាក"</string>
|
||||
<string name="play_description">"ចាក់"</string>
|
||||
<string name="stop_description">"បញ្ឈប់"</string>
|
||||
<string name="rew_description">"ខាថយក្រោយ"</string>
|
||||
<string name="ffw_description">"ទៅមុខរហ័ស"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-kn-rIN/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"ಹಿಂದಿನ ಟ್ರ್ಯಾಕ್"</string>
|
||||
<string name="next_description">"ಮುಂದಿನ ಟ್ರ್ಯಾಕ್"</string>
|
||||
<string name="pause_description">"ವಿರಾಮಗೊಳಿಸು"</string>
|
||||
<string name="play_description">"ಪ್ಲೇ ಮಾಡು"</string>
|
||||
<string name="stop_description">"ನಿಲ್ಲಿಸು"</string>
|
||||
<string name="rew_description">"ರಿವೈಂಡ್ ಮಾಡು"</string>
|
||||
<string name="ffw_description">"ವೇಗವಾಗಿ ಮುಂದಕ್ಕೆ"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-ko/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"이전 트랙"</string>
|
||||
<string name="next_description">"다음 트랙"</string>
|
||||
<string name="pause_description">"일시중지"</string>
|
||||
<string name="play_description">"재생"</string>
|
||||
<string name="stop_description">"중지"</string>
|
||||
<string name="rew_description">"되감기"</string>
|
||||
<string name="ffw_description">"빨리 감기"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-ky-rKG/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Мурунку трек"</string>
|
||||
<string name="next_description">"Кийинки трек"</string>
|
||||
<string name="pause_description">"Тындыруу"</string>
|
||||
<string name="play_description">"Ойнотуу"</string>
|
||||
<string name="stop_description">"Токтотуу"</string>
|
||||
<string name="rew_description">"Артка түрүү"</string>
|
||||
<string name="ffw_description">"Алдыга түрүү"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-lo-rLA/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"ເພງກ່ອນໜ້າ"</string>
|
||||
<string name="next_description">"ເພງຕໍ່ໄປ"</string>
|
||||
<string name="pause_description">"ຢຸດຊົ່ວຄາວ"</string>
|
||||
<string name="play_description">"ຫຼິ້ນ"</string>
|
||||
<string name="stop_description">"ຢຸດ"</string>
|
||||
<string name="rew_description">"ຣີວາຍກັບ"</string>
|
||||
<string name="ffw_description">"ເລື່ອນໄປໜ້າ"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-lt/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Ankstesnis takelis"</string>
|
||||
<string name="next_description">"Kitas takelis"</string>
|
||||
<string name="pause_description">"Pristabdyti"</string>
|
||||
<string name="play_description">"Leisti"</string>
|
||||
<string name="stop_description">"Stabdyti"</string>
|
||||
<string name="rew_description">"Sukti atgal"</string>
|
||||
<string name="ffw_description">"Sukti pirmyn"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-lv/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Iepriekšējais ieraksts"</string>
|
||||
<string name="next_description">"Nākamais ieraksts"</string>
|
||||
<string name="pause_description">"Pārtraukt"</string>
|
||||
<string name="play_description">"Atskaņot"</string>
|
||||
<string name="stop_description">"Apturēt"</string>
|
||||
<string name="rew_description">"Attīt atpakaļ"</string>
|
||||
<string name="ffw_description">"Ātri patīt"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-mk-rMK/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Претходна песна"</string>
|
||||
<string name="next_description">"Следна песна"</string>
|
||||
<string name="pause_description">"Пауза"</string>
|
||||
<string name="play_description">"Пушти"</string>
|
||||
<string name="stop_description">"Запри"</string>
|
||||
<string name="rew_description">"Премотај назад"</string>
|
||||
<string name="ffw_description">"Брзо премотај напред"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-ml-rIN/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"മുമ്പത്തെ ട്രാക്ക്"</string>
|
||||
<string name="next_description">"അടുത്ത ട്രാക്ക്"</string>
|
||||
<string name="pause_description">"താൽക്കാലികമായി നിർത്തുക"</string>
|
||||
<string name="play_description">"പ്ലേ ചെയ്യുക"</string>
|
||||
<string name="stop_description">"നിര്ത്തുക"</string>
|
||||
<string name="rew_description">"റിവൈൻഡുചെയ്യുക"</string>
|
||||
<string name="ffw_description">"വേഗത്തിലുള്ള കൈമാറൽ"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-mn-rMN/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Өмнөх трек"</string>
|
||||
<string name="next_description">"Дараагийн трек"</string>
|
||||
<string name="pause_description">"Түр зогсоох"</string>
|
||||
<string name="play_description">"Тоглуулах"</string>
|
||||
<string name="stop_description">"Зогсоох"</string>
|
||||
<string name="rew_description">"Буцааж хураах"</string>
|
||||
<string name="ffw_description">"Хурдан урагшлуулах"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-mr-rIN/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"मागील ट्रॅक"</string>
|
||||
<string name="next_description">"पुढील ट्रॅक"</string>
|
||||
<string name="pause_description">"विराम द्या"</string>
|
||||
<string name="play_description">"प्ले करा"</string>
|
||||
<string name="stop_description">"थांबा"</string>
|
||||
<string name="rew_description">"रिवाईँड करा"</string>
|
||||
<string name="ffw_description">"फास्ट फॉरवर्ड करा"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-ms-rMY/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Lagu sebelumnya"</string>
|
||||
<string name="next_description">"Lagu seterusnya"</string>
|
||||
<string name="pause_description">"Jeda"</string>
|
||||
<string name="play_description">"Main"</string>
|
||||
<string name="stop_description">"Berhenti"</string>
|
||||
<string name="rew_description">"Gulung semula"</string>
|
||||
<string name="ffw_description">"Mara laju"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-my-rMM/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"ယခင် တစ်ပုဒ်"</string>
|
||||
<string name="next_description">"နောက် တစ်ပုဒ်"</string>
|
||||
<string name="pause_description">"ခဏရပ်ရန်"</string>
|
||||
<string name="play_description">"ဖွင့်ရန်"</string>
|
||||
<string name="stop_description">"ရပ်ရန်"</string>
|
||||
<string name="rew_description">"ပြန်ရစ်ရန်"</string>
|
||||
<string name="ffw_description">"ရှေ့သို့ သွားရန်"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-nb/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Forrige spor"</string>
|
||||
<string name="next_description">"Neste spor"</string>
|
||||
<string name="pause_description">"Sett på pause"</string>
|
||||
<string name="play_description">"Spill av"</string>
|
||||
<string name="stop_description">"Stopp"</string>
|
||||
<string name="rew_description">"Tilbakespoling"</string>
|
||||
<string name="ffw_description">"Fremoverspoling"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-ne-rNP/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"अघिल्लो ट्रयाक"</string>
|
||||
<string name="next_description">"अर्को ट्रयाक"</string>
|
||||
<string name="pause_description">"रोक्नुहोस्"</string>
|
||||
<string name="play_description">"चलाउनुहोस्"</string>
|
||||
<string name="stop_description">"रोक्नुहोस्"</string>
|
||||
<string name="rew_description">"दोहोर्याउनुहोस्"</string>
|
||||
<string name="ffw_description">"फास्ट फर्वार्ड"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-nl/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Vorig nummer"</string>
|
||||
<string name="next_description">"Volgend nummer"</string>
|
||||
<string name="pause_description">"Onderbreken"</string>
|
||||
<string name="play_description">"Afspelen"</string>
|
||||
<string name="stop_description">"Stoppen"</string>
|
||||
<string name="rew_description">"Terugspoelen"</string>
|
||||
<string name="ffw_description">"Vooruitspoelen"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-pa-rIN/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"ਪਿਛਲਾ ਟਰੈਕ"</string>
|
||||
<string name="next_description">"ਅਗਲਾ ਟਰੈਕ"</string>
|
||||
<string name="pause_description">"ਰੋਕੋ"</string>
|
||||
<string name="play_description">"ਪਲੇ ਕਰੋ"</string>
|
||||
<string name="stop_description">"ਰੋਕੋ"</string>
|
||||
<string name="rew_description">"ਰੀਵਾਈਂਡ ਕਰੋ"</string>
|
||||
<string name="ffw_description">"ਅੱਗੇ ਭੇਜੋ"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-pl/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Poprzedni utwór"</string>
|
||||
<string name="next_description">"Następny utwór"</string>
|
||||
<string name="pause_description">"Wstrzymaj"</string>
|
||||
<string name="play_description">"Odtwórz"</string>
|
||||
<string name="stop_description">"Zatrzymaj"</string>
|
||||
<string name="rew_description">"Przewiń do tyłu"</string>
|
||||
<string name="ffw_description">"Przewiń do przodu"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-pt-rBR/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Faixa anterior"</string>
|
||||
<string name="next_description">"Próxima faixa"</string>
|
||||
<string name="pause_description">"Pausar"</string>
|
||||
<string name="play_description">"Reproduzir"</string>
|
||||
<string name="stop_description">"Parar"</string>
|
||||
<string name="rew_description">"Retroceder"</string>
|
||||
<string name="ffw_description">"Avançar"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-pt-rPT/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Faixa anterior"</string>
|
||||
<string name="next_description">"Faixa seguinte"</string>
|
||||
<string name="pause_description">"Interromper"</string>
|
||||
<string name="play_description">"Reproduzir"</string>
|
||||
<string name="stop_description">"Parar"</string>
|
||||
<string name="rew_description">"Rebobinar"</string>
|
||||
<string name="ffw_description">"Avançar"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-pt/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Faixa anterior"</string>
|
||||
<string name="next_description">"Próxima faixa"</string>
|
||||
<string name="pause_description">"Pausar"</string>
|
||||
<string name="play_description">"Reproduzir"</string>
|
||||
<string name="stop_description">"Parar"</string>
|
||||
<string name="rew_description">"Retroceder"</string>
|
||||
<string name="ffw_description">"Avançar"</string>
|
||||
</resources>
|
||||
25
library/src/main/res/values-ro/strings.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2016 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>
|
||||
<string name="prev_description">"Melodia anterioară"</string>
|
||||
<string name="next_description">"Melodia următoare"</string>
|
||||
<string name="pause_description">"Pauză"</string>
|
||||
<string name="play_description">"Redați"</string>
|
||||
<string name="stop_description">"Opriți"</string>
|
||||
<string name="rew_description">"Derulați"</string>
|
||||
<string name="ffw_description">"Derulați rapid înainte"</string>
|
||||
</resources>
|
||||