使用服务在后台播放音频文件



我正试图用Kotlin建立一个Android应用程序。它应该能够在后台播放音频文件。为此,我使用服务。

目前,该服务已启动,可以从主活动的onStop((方法播放音频文件。

因此,当我将应用程序发送到后台时,声音就会开始播放。

除了音频文件的播放只持续大约11秒而不是播放整个文件之外,这是有效的。

AndroidManifest.xml包含以下行:

<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
.....
<service android:name=".AudioService" />

启动服务的代码如下所示:

val serviceIntent = Intent(this, AudioService::class.java)
serviceIntent.putExtra("audioPath", audioPath);
startForegroundService(serviceIntent)

该服务的代码如下:

类AudioService:Service(({private lateinit var audioPlayer:MediaPlayer

override fun onCreate() {
super.onCreate()
}

override fun onBind(p0: Intent?): IBinder? {
return null
}

override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
.....
}

}

既然音频播放开始了,我所做的显然并没有完全错。但是,它还缺少什么呢?

您可以通过将服务升级为"前台服务";。您只能通过将服务的通知添加到通知区域来成为前台服务。

如上所述,您需要使用startForeground(int,Notification(方法来告知用户您的服务。它也得到了更多的特权。

你可以在这里阅读更多关于它的信息(里面的例子(。

您应该为服务添加无限期运行的通知

最新更新