Android 如果在活动类中创建了surfaceView,那么如何在服务类中为mediaplayer使用setDisplay()?

Android 如果在活动类中创建了surfaceView,那么如何在服务类中为mediaplayer使用setDisplay()?,android,android-intent,service,android-mediaplayer,Android,Android Intent,Service,Android Mediaplayer,在我的活动课中,我将surfaceview设置为: surfaceView =(SurfaceView)findViewById(R.id.surfaceView1); 现在,我想为我在服务类中创建并启动的mediaplayer设置显示,因为我希望它在后台运行,即使任何人都没有与活动交互。我想在服务类中使用以下代码,但如何在服务中使用在活动中声明的surfaceView,因为它不能通过intent.putExtra()从活动传递到服务 mMediaPlayer.reset(); mMediaP

在我的活动课中,我将surfaceview设置为:

surfaceView =(SurfaceView)findViewById(R.id.surfaceView1);
现在,我想为我在服务类中创建并启动的mediaplayer设置显示,因为我希望它在后台运行,即使任何人都没有与活动交互。我想在服务类中使用以下代码,但如何在服务中使用在活动中声明的surfaceView,因为它不能通过intent.putExtra()从活动传递到服务

mMediaPlayer.reset();
mMediaPlayer.setDataSource(filename);
mMediaPlayer.setDisplay(surfaceView.getHolder());

这样您就有了
服务的一个实例。创建一个从
服务
返回您的
MediaPlayer
实例的方法。我认为,其余的应该是显而易见的。只要问问有没有什么不合理的地方。

试试别的办法。从活动中的服务获取媒体播放器对象,并将surfaceview支架添加到其中。:)