- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 MediaController 并对其进行更改,使其不会在 3 秒后消失。我在相关问题中找到了这段代码,我正在使用它:
mediaController = new MediaController(this) {
@Override
public void hide()
{
mediaController.show();
}
};
此代码有效,但是当 Activity 停止时(通过使用后退按钮),我从以下代码中添加的 View 中的 show(0) 语句中获取有关泄漏窗口的日志错误:
public void onPrepared(MediaPlayer mediaPlayer) {
mediaController.setMediaPlayer(this);
mediaController.setAnchorView(findViewById(R.id.audio_control));
handler.post(new Runnable() {
public void run() {
mediaController.setEnabled(true);
mediaController.show(0);
}
});
}
在我看来,通过简单地调用 show 方法来覆盖 hide 方法意味着 hide 方法在完成 Activity 时没有执行所需的操作。我必须覆盖其他必要的功能,比如实际隐藏 Controller !
我想在必要时隐藏 Controller (例如在完成它时),但不是在它只是在 3 秒后隐藏(并且 Activity 未完成)的情况下。
或者也许我应该让 Controller 一直在 3 秒后消失,但我不确定我是否理解为什么要这样实现。对我来说,将它一直放在那里似乎更好。
最佳答案
这是 MediaController 中的错误:
private View.OnClickListener mPauseListener = new View.OnClickListener() {
public void More ...onClick(View v) {
doPauseResume();
show(sDefaultTimeout);
}
};
有两种方法可以解决这个问题。
A) 覆盖 hide()
方法:
class MyMediaController extends MediaController {
@Override
public void hide() {
// Nope, do not hide. Call hideActually() to actually hide.
}
public void hideActually() {
super.hide();
}
}
B) 覆盖 show()
方法:
class MyMediaController extends MediaController {
public int mTimeout = 0;
@Override
public void show() {
show(mTimeout);
}
@Override
public void show(int timeout) {
super.show(mTimeout);
}
}
覆盖 hide()
方法可以让您完全控制隐藏 MediaController,但您必须确保在 Activity 被销毁之前调用 hideActually()
,否则您将获得有关泄漏窗口的这些日志错误。
重写 show()
方法让您有机会设置超时。在这种情况下,MediaController 将隐藏某些事件而不显式调用 hide()
方法,即当用户按下后退按钮时。
就我个人而言,我更喜欢混合使用这两种实现方式:
class MyMediaController extends MediaController {
public int mTimeout = 0;
@Override
public void show() {
show(mTimeout);
}
@Override
public void show(int timeout) {
super.show(mTimeout);
}
@Override
public void hide() {
// Do not hide until a timeout is set
if (mTimeout > 0) super.hide();
}
public void hideActually() {
super.hide();
}
}
在这种情况下,当 mTimeout = 0
时,您可以完全控制显示和隐藏 MediaController,但是当您实际设置超时时,您会得到 MediaController 的“正常”行为。
关于android - MediaController 3 第二期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17344600/
我想向 MediaController 添加一个按钮。所以我扩展了 MediaController 类,创建了一个按钮并将其添加到框架布局中。但是新添加的按钮在运行时没有反射(reflect)。 请找
在我阅读的有关 MediaController 小部件的 android 文档中 Functions like show() and hide() have no effect when MediaC
我正在为 VideoView 使用“android.widget.MediaController”。不确定何时使用“android.media.session.MediaController”以及它们
@Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(ha
我需要为我的播放器应用制作一个Controller。在它的帮助下,用户可以播放、暂停、选择下一首或上一首歌曲。但是这个 Controller 没有显示,我不知道为什么? 我已经完成了为 Control
我有一个 MediaController mc 和 VideoView videoView 链接如下: videoView.setMediaController(mc); 但是,我还想
我正在制作一个 MusicPlayer 应用程序来播放设备上可用的歌曲。我的问题是当我播放歌曲时 MediaController 没有显示。我已经尝试了所有可能的方法,但 MediaControlle
所以我有以下代码可以正常工作: VideoView videoView = (VideoView)findViewById(R.id.videoView1); videoView.setVideoPa
我正在将 MediaController 添加到 VideoView,但除非我点击手机,否则它不会显示。 Controller 在一段时间后消失。 有没有办法让 MediaController 始终显
我在我的 Activity 中使用了 MediaController 它工作正常但是当我第一次播放视频时应该有 b 暂停按钮可见但是有播放并且当我按下该按钮时视频正确暂停并且状态保持不变然后它正常工作
我的应用程序的上半部分有一个 VideoView,下面有一个 MediaController。下半部分是带有一些按钮的图像。当 MediaController 可见时,下面的按钮不可点击。这就像当 M
我目前正在 Android OS 2.3.3 上开发一个简单的视频播放器,我使用 VideoView 来显示电影并使用 MediaController 来控制视频. 我想在搜索栏上添加几个章节标记,想
我一直在为我的应用程序使用 mediaController。 默认情况下,媒体 Controller 显示在屏幕底部。 有没有办法在屏幕中间显示媒体 Controller ? 最佳答案 只有在视频大小
我知道如何控制返回按钮。我在 FrameLayout 中嵌入了一个 VideoView。我的问题是当视频弹出时,视频控件会出现几秒钟。在它们可见时点击后退按钮会隐藏视频控件。有没有办法忽略该功能并执行
尝试使用媒体 Controller 通过 url 播放音频文件 但是我收到错误: 09-11 10:28:23.970: E/MediaPlayer(912): Attempt to call get
我正在尝试使用 MediaController 并对其进行更改,使其不会在 3 秒后消失。我在相关问题中找到了这段代码,我正在使用它: mediaController = new MediaContr
如何以编程方式更改 MediaController 图标?我的意思是播放/暂停/前进和倒退。 你看我已经添加了全屏按钮,但不知道如何更改这三个按钮。 自定义 MediaController 类: pu
嘿,我正在尝试修复项目中的错误。他们创建了一个媒体 Controller 并将其 anchor View 设置为视频 View 。 但是当我播放视频时,mediacontroller 被绘制在整个屏幕
当我旋转我的设备时,视频控件无法正确调整大小。我在这里制作了一段视频:http://www.youtube.com/watch?v=FgRythmUo3A 有没有办法“重绘”控件? 我对我的 list
我有一种情况,我正在使用 standard VideoView 流式传输视频结合 MediaController object .就播放而言一切正常,但是 ProgressBars 的外观因为当视频加
我是一名优秀的程序员,十分优秀!