我正在开发一个示例应用程序使用MediaPlayer.By使用原始资源文件夹,视频可以播放.但我想玩.我URL怎么能实现这一点?
VideoView videoView = (VideoView) findViewById(R.id.VideoView);
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(videoView);
// Set video link (mp4 format )
Uri video = Uri.parse("http://www.youtube.com/watch?v=T1Wgp3mLa_E");
videoView.setMediaController(mediaController);
videoView.setVideoURI(video);
videoView.start();
Run Code Online (Sandbox Code Playgroud) 视频在下面提到的代码中无法正常工作.这可能是什么问题?
MediaController mediaController = new MediaController(getBaseContext());
mediaController.setAnchorView(videoweb);
Uri video = Uri.parse("http://www.youtube.com/v/wwI2w2YHkCQ?fs=1");
videoweb.setMediaController(mediaController);
videoweb.setVideoURI(video);
videoweb.start();
Run Code Online (Sandbox Code Playgroud)
错误:
无法播放视频
抱歉,此视频无法播放.
**如果你不知道什么,我真的需要帮助不给我一个负面的观点:| 如果有什么事情打扰你评论**
我想在Exoplayer中为我的播放器编写自定义UI(更改暂停播放按钮或添加播放器速度等新按钮等).
我使用来自github的Exoplayer示例,在将代码添加到我的原始项目之前,我想在官方示例上测试自定义UI.
我在Stackoverflow中读取页面并关于自定义UI但我真的很困惑!
为什么改变一些按钮图像或改变它们的位置必须如此困难:)我怎么能处理这个?
编辑
这是示例 https://github.com/google/ExoPlayer/tree/master/demo
我读了这两篇文章:
http://www.brightec.co.uk/ideas/custom-android-media-controller
http://code.tutsplus.com/tutorials/create-a-music-player-on-android-user-controls--mobile-22787
根据这个链接 "而不是从头开始编写自己的媒体控制器,你可以从Android中包含的MediaController类开始"我问这个问题,因为我无法在exoplayer库上执行此步骤,并且教程是为默认编写的媒体播放器
以下活动工作正常,但只有当我点击屏幕时,mediaController才会显示.第二个问题是媒体控制器显示仅持续3秒.我该怎么做才能解决这个问题?
public class PlayingActivity extends Activity
{
private VideoView mVideoView;
private EditText mPath;
MediaController mediaController;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.playingactivity);
mPath = (EditText) findViewById(R.id.path);
mPath.setText(GlobalVariable.getstrEmail());
mVideoView = (VideoView) findViewById(R.id.surface_view);
Uri uri = Uri.parse("/sdcard/download/test.mp3");
mediaController = new MediaController(this);
mediaController.findFocus();
mediaController.setEnabled(true);
mediaController.show(0);
mediaController.setAnchorView(mVideoView);
mVideoView.setMediaController(mediaController);
mVideoView.setVideoURI(uri);
mVideoView.start();
}
}
Run Code Online (Sandbox Code Playgroud) 在使用VideoView时,我无法找到将MediaController保留在屏幕上的方法.我想在我的应用程序中播放res/raw中的音频文件.该文件正在播放,但我想将控制器保留在屏幕上,以便用户查看文件的长度以及在结束之前剩余的时间等.我在论坛上发现很多时间我们应该使用该方法.show (时间)为了做到这一点,但我无法弄清楚如何使它工作.
这是我正在使用的代码:
package com.sample.VideoViewExample;
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.widget.MediaController;
import android.widget.VideoView;
public class VideoViewExample extends Activity implements SurfaceHolder.Callback{
private VideoView mVideoView;
private MediaController mMedia;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
mVideoView = (VideoView) findViewById(R.id.surface_view);
//mVideoView.getHolder().addCallback(this);
//mMedia.show(50000);
//mVideoView.setMediaController(mMedia);
MediaController mMedia = new MediaController(this);
mMedia.setMediaPlayer(mVideoView);
mMedia.setAnchorView(mVideoView);
mVideoView.setMediaController(mMedia);
mVideoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() +"/"+R.raw.osa_patient));
mVideoView.requestFocus();
mVideoView.start();
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
}
@Override
public …Run Code Online (Sandbox Code Playgroud) 我想从Android中的mediacontroller中删除fastforward和倒带按钮.谁能帮我这个?我想在我的主要活动中做到这一点.
下午好/早上好!希望有人可以帮我解决我遇到的一个小问题.我正在使用VideoView和自定义播放远程.mp3文件MediaController.
我的MediaController看起来像这样:
public class MyMediaController extends MediaController {
public MyMediaController(Context context) {
super(context);
}
// Do nothing on the overridden hide method so the playback controls will never go away.
@Override
public void hide() {
}
// Override the dispatchKeyEvent function to capture the back KeyEvent and tell the activity to finish.
@Override
public boolean dispatchKeyEvent(KeyEvent event)
{
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK)
{
((Activity) getContext()).finish();
}
return super.dispatchKeyEvent(event);
}
Run Code Online (Sandbox Code Playgroud)
}
我的代码将它附加到我VideoView看起来像这样:
VideoView videoView = …Run Code Online (Sandbox Code Playgroud) 我想在我的VideoView中添加一个mediaController.我正在尝试按照本网站的教程.
但是,我的课程中出现了错误.
MediaController mediaController = new MediaController(this);
Run Code Online (Sandbox Code Playgroud)
错误说,
MediaController (Context, Token) in MediaController cannot be applied to (MainActivity)
Token参数是什么?自从我使用原生Android编码以来我已经有一段时间了,我想我错过了一些必要的细节和变化.
编辑 我正在寻找一个不同的教程,链接中的一个,是在Android Studio中制作的.我的错.
我的课
public class MainActivity extends ActionBarActivity {
public VideoView videoOne;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
videoOne = (VideoView) findViewById(R.id.videoView);
videoOne.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.video1));
videoOne.start();
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(videoOne);
videoOne.setMediaController(mediaController);
videoOne.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
Log.i("Video Duration", "Duration = " + videoOne.getDuration());
} …Run Code Online (Sandbox Code Playgroud) eclipse android mediacontroller android-studio android-videoview
我正在尝试在 Android 中实现通知播放器。我按照本指南来实现这一目标。但是,根据我的要求,我需要在后台通知播放器中实现“跳到下一个”和“跳到上一个”。
到目前为止,MediaSessionCompact.Callback 的 onPlay() 和 onPause() 被触发。但是,在调试时,我注意到在通知播放器中按下下一个和上一个按钮时不会触发 onSkipToNext() 和 onSkipToPrevious() 回调方法。
感谢您的投入。我在下面添加了相关代码。
背景音频服务
private void showPlayingNotification() {
NotificationCompat.Builder builder = MediaStyleHelper.from(BackgroundAudioService.this, mMediaSessionCompat);
if (builder == null) {
return;
}
builder.addAction(new NotificationCompat.Action(android.R.drawable.ic_media_previous, "Previous", MediaButtonReceiver.buildMediaButtonPendingIntent(this, PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS)));
builder.addAction(new NotificationCompat.Action(android.R.drawable.ic_media_pause, "Pause", MediaButtonReceiver.buildMediaButtonPendingIntent(this, PlaybackStateCompat.ACTION_PLAY_PAUSE)));
builder.addAction(new NotificationCompat.Action(android.R.drawable.ic_media_next, "Next", MediaButtonReceiver.buildMediaButtonPendingIntent(this, PlaybackStateCompat.ACTION_SKIP_TO_NEXT)));
builder.setStyle(new NotificationCompat.MediaStyle().setShowActionsInCompactView(0).setMediaSession(mMediaSessionCompat.getSessionToken()));
builder.setSmallIcon(R.mipmap.ic_launcher);
NotificationManagerCompat.from(BackgroundAudioService.this).notify(1, builder.build());
}
private void showPausedNotification() {
NotificationCompat.Builder builder = MediaStyleHelper.from(this, mMediaSessionCompat);
if (builder == null) {
return;
}
builder.addAction(new NotificationCompat.Action(android.R.drawable.ic_media_previous, "Previous", MediaButtonReceiver.buildMediaButtonPendingIntent(this, PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS)));
builder.addAction(new NotificationCompat.Action(android.R.drawable.ic_media_play, "Play", MediaButtonReceiver.buildMediaButtonPendingIntent(this, PlaybackStateCompat.ACTION_PLAY_PAUSE))); …Run Code Online (Sandbox Code Playgroud) java android mediacontroller android-mediaplayer android-mediasession
我正在使用 MediaPlayer 和 MediaController 对象来传输音频。关闭活动时,我收到窗口泄漏异常。
我的活动中有以下内容,根本没有帮助。
@Override
protected void onStop() {
super.onStop();
mediaController.hide();
}
Run Code Online (Sandbox Code Playgroud)
我得到以下堆栈跟踪:
01-24 20:11:18.317:E / WindowManager(26286):活动co.uk.ing_simmons.aberdeensoundsites.RecordingDetails已泄露最初在此处添加的窗口com.android.internal.policy.impl.PhoneWindow$DecorView@4182d590 01 -24 20:11:18.317:E / WindowManager(26286):android.view.WindowLeaked:活动co.uk.ing_simmons.aberdeensoundsites.RecordingDetails已泄漏窗口com.android.internal.policy.impl.PhoneWindow$DecorView@4182d590最初添加在这里 01-24 20:11:18.317: E/WindowManager(26286): 在 android.view.ViewRootImpl.(ViewRootImpl.java:418) 01-24 20:11:18.317: E/WindowManager(26286):在 android.view.WindowManagerImpl.addView(WindowManagerImpl.java:294) 01-24 20:11:18.317:E/WindowManager(26286):在 android.view.WindowManagerImpl.addView(WindowManagerImpl.java:226) 01-24 20 :11:18.317:E / WindowManager(26286):在android.view.WindowManagerImpl $ CompatModeWrapper.addView(WindowManagerImpl.java:151)01-24 20:11:18.317:E / WindowManager(26286):在android.view。窗口 $LocalWindowManager.addView(Window.java:547) 01-24 20:11:18.317: E/WindowManager(26286): 在 android.widget.MediaController.show(MediaController.java:470) 01-24 20:11: 18.317: E/WindowManager(26286): 在 android.widget.MediaController.show(MediaController.java:429) 01-24 20:11:18.317: E/WindowManager(26286): 在 co.uk.ing_simmons.aberdeensoundsites.RecordingDetails $2.run(RecordingDetails.java:202) 01-24 20:11:18.317: E/WindowManager(26286): 在 android.os.Handler.handleCallback(Handler.java:615) 01-24 20:11:18.317: E / WindowManager(26286):在android.os.Handler.dispatchMessage(Handler.java:92)01-24 20:11:18.317:E / WindowManager(26286):在android.os.Looper.loop(Looper.java) :153)01-24 20:11:18.317:E / …
android ×10
mediacontroller ×10
eclipse ×1
exoplayer ×1
java ×1
media-player ×1
memory-leaks ×1
youtube ×1