我一直在尝试使用一个简单的音频播放器的android自动和只是流音频从一个链接。但当函数被调用的媒体播放器无法设置数据源从url。它会返回以下错误。
编码:
class HelloWorldScreen(carContext: CarContext) : Screen(carContext) {
override fun onGetTemplate(): Template {
val mGridIcon = IconCompat.createWithResource(
carContext, R.drawable.mainscreenlogo
)
val gridItemCar = GridItem.Builder()
.setTitle("Car Info")
.setImage(
CarIcon.Builder(mGridIcon).build(),
GridItem.IMAGE_TYPE_LARGE
).setOnClickListener(this::player).build()
val gridList = ItemList.Builder()
.addItem(gridItemCar).build()
return GridTemplate.Builder()
.setSingleList(gridList)
.build()
}
private fun player(){
var mediaPlayer = MediaPlayer()
var audioUrl = "https://url"
var customUri: Uri = Uri.parse(audioUrl)
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC)
mediaPlayer.setAudioAttributes(
AudioAttributes. Builder()
.setUsage(AudioAttributes.USAGE_MEDIA)
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.build()
)
if(!mediaPlayer.isPlaying){
try {
mediaPlayer.setDataSource(audioUrl)
mediaPlayer.prepareAsync()
mediaPlayer.setOnPreparedListener {
mediaPlayer.start()
}
} catch (e: Exception) {
e.printStackTrace()
}
Log.d("Player" , "Audio started playing..") }
else {
if (mediaPlayer.isPlaying) {
mediaPlayer.stop()
mediaPlayer.reset()
// mediaPlayer.release()
Log.d("Player" , "Player Released")
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC)
} else {
Log.d("Player" , "Audio not played.. Check Error")
}
}
}}
我使用了播放器函数来调用播放器。
错误:
E/媒体播放器本机:无法创建媒体播放器W/系统。错误:java.io.IOException:设置数据源失败。错误:状态= 0x 80000000带有系统错误:在Android上。媒体。媒体播放器。nativeSetDataSource(本地方法)W/系统。错误:系统错误:系统错误:系统错误:您好,欢迎访问我们的网站。如果您有任何问题,请与我们联系。如果您有问题,请与我们联系。在创建会话(CarAppService.java:283)时出现系统错误:系统错误:在androidx.car.app.CarAppBinder$$ExternalSyntheticLambda6.dispatch(未知来源:8)中使用系统。错误:系统错误:在androidx.car.app.utils.RemoteUtils$$ExternalSyntheticLambda2.run(未知源代码:6)上运行系统错误:在Android操作系统上。处理程序。句柄回调(Handler.java:883)时出现系统错误:
系统错误:系统错误:系统错误:在java.lang.reflect.方法.invoke(本机方法)中出现系统错误:在运行时初始化$MethodAndArgsCaller.run(运行时初始化. java:492)时出现系统错误:请访问安卓系统内部操作系统。
我这样做错了吗,如果是这样的话,一个如何在android auto中播放音频的小代码指南将会非常感谢。谢谢。
1条答案
按热度按时间k7fdbhmy1#
从技术上讲,这是由于我自己的错误,没有在清单中添加网络权限。结果是,我使用的Mediaplayer和HLS链接都在汽车仿真器中得到了很好的支持。如果有人看到这个问题,请确保正确添加网络权限。谢谢。
和