(Context, Token) 在实例化 MediaController

Posted

技术标签:

【中文标题】(Context, Token) 在实例化 MediaController【英文标题】:(Context, Token) in instantiating MediaController 【发布时间】:2015-02-12 05:58:01 【问题描述】:

我正在尝试在我的 VideoView 中添加一个 mediaController。我正在尝试按照site 中的教程进行操作。

但是,我的班级在这一行中有一个错误。

MediaController mediaController = new MediaController(this);

错误说,

MediaController (Context, Token) in MediaController cannot be applied to (MainActivity)

Token 参数是什么?自从我使用 Native 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());
        
    );
    videoOne.setMediaController(mediaController);


【问题讨论】:

【参考方案1】:

错误非常简单。确保您正在导入正确的MediaController。为了您的目的,您需要此导入:

import android.widget.MediaController;

上面的类有你正在寻找的构造函数。链接:

http://developer.android.com/reference/android/widget/MediaController.html#MediaController(android.content.Context)

您可能正在使用以下一种:

 import android.media.session.MediaController;

希望对你有帮助

【讨论】:

【参考方案2】:

这个解决了我的“这个”问题

import import android.widget.MediaController;

【讨论】:

【参考方案3】:

我解决了。我导入了android.media.session.MediaController 而不是android.widget.MediaController

【讨论】:

【参考方案4】:
 videoview.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);;
                                                        videoview.setMediaController(mc); 
                                                        /* 
                                                         * and set its position on screen 
                                                         */ 
                                                        mc.setAnchorView(videoview); 
                                                     
                                                ); 
                                             
                                        ); 

【讨论】:

以上是关于(Context, Token) 在实例化 MediaController的主要内容,如果未能解决你的问题,请参考以下文章

java.lang.IllegalArgumentException:无法实例化接口 org.springframework.context.ApplicationListener

运行spring boot应用报错:无法实例化接口org.springframework.context.ApplicationListener

线程“主”java.lang.IllegalArgumentException 中的异常:无法实例化接口 org.springframework.context.ApplicationListener

注解方式实例化Java类

context.DeserializeTicket(token) 做啥?

设计模式-策略模式