Provide a VideoView for simple use cases.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=132855091
This commit is contained in:
[]inger 2016-09-12 02:46:25 -07:00 committed by Oliver Woodman
parent da034da5d2
commit 7925342fa0
124 changed files with 3031 additions and 364 deletions

View file

@ -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) {

View file

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

View file

@ -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);
}

View file

@ -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);
}
}

View file

@ -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);
}
}
}
}

View file

@ -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();
}
}
}

View file

@ -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);
}
}

View file

@ -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.
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 599 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 886 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 735 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 770 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 906 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 929 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 843 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 540 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 897 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 837 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 997 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 685 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 611 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Some files were not shown because too many files have changed in this diff Show more