【问题标题】:How to re-position the MediaController?如何重新定位 MediaController?
【发布时间】:2021-05-27 12:28:26
【问题描述】:

我一直在为我的应用程序使用 mediaController。

默认情况下,媒体控制器显示在屏幕底部。

有没有办法在屏幕中间显示媒体控制器?

【问题讨论】:

标签: android mediacontroller


【解决方案1】:

只有在视频大小已知的情况下才能放置媒体控制器。因此,您必须这样做:

video.setOnPreparedListener(new OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mp) {
            mp.setOnVideoSizeChangedListener(new OnVideoSizeChangedListener() { 
                                    @Override
                                    public void onVideoSizeChanged(MediaPlayer mp, int width, int height) {
                                          /*
                                           *  add media controller
                                           */
                                          mc = new MediaController(YourActivity.this);;
                                          video.setMediaController(mc);
                                          /*
                                           * and set its position on screen
                                           */
                                          mc.setAnchorView(video);
                                    }
                                    });
                            }
          });

【讨论】:

  • 这是真正有效的答案!无需在 XML 布局中添加 MediaPlayer。只需 setAnchorView 而 VideoView 同时准备自己。如果有人想实现自己的媒体控制器,请查看stackoverflow.com/questions/3686729/…
【解决方案2】:

终于搞定了..

   mediaController.setAnchorView(findViewById(R.id.main_audio_view));

使用这个 sn-p 我们可以根据布局 id 或视图的 id 重新定位媒体控制器以放置在特定位置

【讨论】:

  • 但即便如此,MediaController 仍然出现在屏幕底部
  • 我认为这也取决于其他几个因素,例如您在 XML 中使用的布局
  • 是的,可能是。因为我通常只使用相对布局
【解决方案3】:

/*var mediaController:MediaController? = 空

videoView 是布局文件中对 VideoView 的引用。 */

videoView.setOnPreparedListener(OnPreparedListener { mp ->
            mp.setOnVideoSizeChangedListener { mp, width, height -> 
                   
                 mediaController = MediaController(this@ActivityName)

                videoView.setMediaController(mediaController)
    
               mediaController?.setAnchorView(videoView)
 
            }
        })
`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多