行 35674: frameworks/base/media/java/android/media/MediaPlayer.java:670: error: constructor PlayerBase in class PlayerBase cannot be applied to given types; 行 35680: frameworks/base/media/java/android/media/MediaPlayer.java:672: error: call to this must be first statement in constructor
时间: 2023-07-11 12:32:06 浏览: 61
这两个错误都是在 MediaPlayer.java 文件中出现的 Java 编译错误。
第一个错误是在第 35674 行,错误提示是在 PlayerBase 类中的构造函数 PlayerBase 无法应用于给定的类型。这个错误通常是因为你在实例化 PlayerBase 的时候,传递了错误的参数或者参数类型不匹配。你需要检查传递给 PlayerBase 构造函数的参数类型是否与 PlayerBase 构造函数的参数类型匹配。
第二个错误是在第 35680 行,错误提示是在构造函数中调用 this 必须放在构造函数的第一行。这个错误通常是因为你在构造函数中调用了其他方法或构造函数,而这些调用不是构造函数的第一个语句。要解决这个问题,你需要将调用 this 的语句移到构造函数的第一行,或者使用 super 调用父类的构造函数作为第一个语句。
例如,你可以将 this(AudioSystem.AUDIO_SESSION_ALLOCATE) 调用移到构造函数的第一行,如下所示:
```java
public MediaPlayer() {
this(AudioSystem.AUDIO_SESSION_ALLOCATE);
// other constructor code
}
private MediaPlayer(int audioSession) {
// constructor code
}
```
这样,就可以避免 "call to this must be first statement in constructor" 错误。
相关问题
frameworks/base/media/java/android/media/MediaRouter.java
这是一个 Android 平台的媒体路由器类的 Java 实现,它提供了用于处理媒体路由的 API。媒体路由是指将媒体内容从一个设备传输到另一个设备的过程,例如将音频或视频从手机传输到电视或扬声器。MediaRouter 类提供了许多方法来查询和控制可用的媒体路由设备,以及将媒体内容发送到这些设备。它还提供了回调接口,以便应用程序可以得到有关媒体路由状态变化的通知。
frameworks/base/media/java/android/media/MediaRouter.java 传输到 手机喇叭
要将媒体内容从 Android 设备传输到手机扬声器,可以使用 MediaRouter 类的 selectRoute() 方法。这个方法接受一个参数,即要选择的目标路由器,可以通过调用 MediaRouter 类的 getRoute() 方法获取可用的路由器列表,并从中选择一个适当的路由器。例如,如果要将媒体内容从 Android 设备传输到手机喇叭,可以这样做:
```
MediaRouter mediaRouter = (MediaRouter) getSystemService(Context.MEDIA_ROUTER_SERVICE);
MediaRouter.RouteInfo route = mediaRouter.getDefaultAudioRoute();
mediaRouter.selectRoute(route);
```
这将选择默认的音频路由器,并将媒体内容传输到与之关联的设备,也就是手机的喇叭。