问题标签 [audio-service]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
280 浏览

flutter - 支持排队和多个播放列表的应用程序的 audio_service 和 just_audio 设计

我正在使用 Flutter 和+组合为Koel构建一个移动应用程序。该应用程序基本上是这样工作的:audio_servicejust_audio

  1. 用户登录
  2. 应用从服务器加载大量 JSON 数据
  3. 应用程序将所述数据解析为歌曲、艺术家、专辑和播放列表
  4. 应用程序允许用户将歌曲添加到(顶部/底部/当前之后)/从队列中删除歌曲并播放或随机播放它们。整个应用程序中只有一个队列(即,如果用户在播放列表屏幕中按“全部播放”,队列的当前内容将被该播放列表中的歌曲替换)。
  5. 我在这里假设一个队列(List<Song>?)和一个ConcatenatingAudioSource应该总是在那里(尽管可以是空的),以便可以进行第 4 步

audio_service我一直在尝试使用and just_audio( )来实现第 4 步ConcatenatingAudioSource,但到目前为止还没有那么成功。本质上,我不清楚如何设计应用程序的架构。我是否需要检测队列并将其与andSong同步,如果是,如何?当用户从 UI 中删除歌曲小部件时,如何从队列和? 用户在播放列表屏幕中的歌曲小部件上点击“立即播放”的内容,在使播放器切换到该歌曲同时仍保持队列处于活动状态的情况下应该发生什么?audio_servicejust_audioSongMediaItemConcatenatingAudioSource

(可能值得一提的是,给出的示例audio_service非常基本,固定队列中有固定的歌曲列表,这与我的情况几乎不相似。此外,某些功能(例如,将歌曲排在当前歌曲之后) t 似乎可用,这意味着我必须依赖BackgroundAudioTask.onCustomAction,它只接受某些数据类型作为参数。MediaItem而且我的自定义Song模型对象似乎不受支持。)

0 投票
0 回答
202 浏览

flutter - 获取 YouTube 音频颤振

我正在尝试创建一个能够在后台播放 youtube 音频的应用程序,但是,虽然我找到了一种在线播放 mp3 文件中的音频的方法,但我还没有找到一种方法来做同样的事情对于 YouTube 视频。

从图片中可以看出,曲目已正确初始化为 mp3 链接。有没有办法以某种方式修改它以使用 youtube 音频代替?我意识到我最终可能不得不下载视频,然后只是从内存中播放它们,但考虑到这将是多么低效,我只打算将其用作最后的手段。

对于上下文,我使用这个 GitHub 存储库作为模板

0 投票
1 回答
781 浏览

flutter - 带有进度条的颤动背景音频

我想从流中播放音频。我为此使用了Just Audio。我想要一个像Audio Video Progress bar这样的进度条也使用Audio Service在后台播放音频。

我已经为所有这些示例使用了这些示例,并且它们是单独工作的,但我无法将它们连接起来。你能举个例子来说明我该怎么做吗?

0 投票
1 回答
392 浏览

flutter - 使用 audio_service 的 AudioHandler for Flutter 应用程序区分停止和处理

just_audio AudioPlayer 允许您停止和处理:

stop在将来可能仍想再次开始演奏时使用,而dispose在您完全完成时使用。

我的问题是包装just_audio AudioPlayer的audio_service AudioHandler只有一个stop方法。没有dispose

添加自定义操作的正确方法是什么?

并这样称呼它:

0 投票
2 回答
94 浏览

flutter - 如何使用插件audio_service颤动处理音频通知的onTap?

我想在应用程序在前台或后台时处理点击通知然后重定向到特定页面,我使用audio_service插件来处理背景音频,这个插件可以处理吗?

0 投票
0 回答
304 浏览

just-audio - 播放器位置不同步 audio_service 颤动

我有一个音频播放器应用程序,它使用audio_servicejust_audio插件进行播放。一切似乎都很好,但我面临两个问题。

  1. 播放器位置不同步,持续时间变为位置,但是当我暂停音频时,它反映了正确的位置。这种行为可以在通知和AudioService.positionStream更新 Flutter UI 上的搜索栏上看到。

  2. 音频突然停止在锁定屏幕上播放。 播放时的位置与持续时间相同

暂停时的位置

我的代码:

代码块摘要:基本上是AudioService在播放器状态更改时设置状态。

0 投票
1 回答
169 浏览

android - 如何将“均衡器”与“audio_service”包一起使用

我正在使用just_audio包装audio_serivce。其他一切正常,现在我想实现一个Equalizer. 我看到了关于添加均衡器的例子。just_audio但我不太确定如何使用audio_service. 我在后台服务中初始化了这样的音频播放器:

并将示例中的代码用于颤振 UI。但是如何_equalizer在 UI 部分使用后台服务呢?我尝试使用它访问它,customAction但没有成功。

0 投票
1 回答
101 浏览

android - 使用 just_audio 和 audio_service 播放用户在 mediaItem 上停止的位置

我正在开发一个播客应用程序,该应用程序的一个功能是它可以保存用户离开播客以播放另一个播客或完全离开应用程序的位置。如果不首先使用播客播放所述播客并寻找用户停止使用的位置,我找不到从其lastPlayed时间戳播放已保存播客的方法。使用这种播放方法,我得到了这个错误:播客从头开始播放,而不是应该在哪里播放。有什么建议么?audioHandler.play()audioHandler.seek(lastPlayed)

W/System.err(27454): com.google.android.exoplayer2.IllegalSeekPositionException W/System.err(27454): 在 com.google.android.exoplayer2.ExoPlayerImpl.seekTo(ExoPlayerImpl.java:611) W/System。错误(27454):在 com.google.android.exoplayer2.SimpleExoPlayer.seekTo(SimpleExoPlayer.java:1527) W/System.err(27454):在 com.ryanheise.just_audio.AudioPlayer.seek(AudioPlayer.java:953) W/System.err(27454):在 com.ryanheise.just_audio.AudioPlayer.onMethodCall(AudioPlayer.java:455) W/System.err(27454):在 io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage( MethodChannel.java:233) W/System.err(27454): 在 io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85) W/System.err(27454): 在 io.flutter。 embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:818) W/System.err(27454):在 android.os.MessageQueue.nativePollOnce(Native Method) W/System.err(27454): 在 android.os.MessageQueue.next(MessageQueue.java:335) W/System.err(27454): 在 android.os。 Looper.loop(Looper.java:206) W/System.err(27454): 在 android.app.ActivityThread.main(ActivityThread.java:8512) W/System.err(27454): 在 java.lang.reflect。 Method.invoke(Native Method) W/System.err(27454): 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602) W/System.err(27454): 在 com.android .internal.os.ZygoteInit.main(ZygoteInit.java:1130) E/flutter (27454): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] 未处理异常:PlatformException(非法状态:null,null,空,空)在 android.os.Looper.loop(Looper.java:206) W/System.err(27454): 在 android.app.ActivityThread.main(ActivityThread.java:8512) W/System.err(27454): 在 java .lang.reflect.Method.invoke(Native Method) W/System.err(27454):在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602) W/System.err(27454) : 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130) E/flutter (27454): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] 未处理的异常:PlatformException(非法状态:空,空,空,空)在 android.os.Looper.loop(Looper.java:206) W/System.err(27454): 在 android.app.ActivityThread.main(ActivityThread.java:8512) W/System.err(27454): 在 java .lang.reflect.Method.invoke(Native Method) W/System.err(27454):在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602) W/System.err(27454) : 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130) E/flutter (27454): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] 未处理的异常:PlatformException(非法状态:空,空,空,空)602)W/System.err(27454):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)E/flutter(27454):[错误:flutter/lib/ui/ui_dart_state.cc( 199)] 未处理的异常:PlatformException(非法状态:null、null、null、null)602)W/System.err(27454):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)E/flutter(27454):[错误:flutter/lib/ui/ui_dart_state.cc( 199)] 未处理的异常:PlatformException(非法状态:null、null、null、null)

0 投票
1 回答
414 浏览

android - 颤动的audio_service:完全播放媒体项目后AudioProcessingState不更新

我在颤振中开发了一个音乐播放器应用程序。

场景:当用户从列表中选择一首歌曲时,一旦选择的歌曲播放完毕,自动需要开始列表中的下一首歌曲。

目前我正在收听流媒体以更新 UI 上的歌曲详细信息和滑块信息PlaybackStatePosition但是,我无法确定所选歌曲何时播放完毕。这里的想法是,一旦播放了选定的歌曲,就必须播放列表中的下一首歌曲。最初,AudioProcessingState 从连接状态变为就绪状态。第一个媒体项目已成功播放。但,

问题 1:即使在完全播放完第一个媒体项后,AudioProcessingState 仍然存在ready(未更改为已完成)。就连演奏也true总是如此。下面是播放和暂停 UI 的逻辑。

问题 2:此外,即使在完成所选歌曲后,位置流也会持续接收。因此,我无法停止更新持续时间标签。

简单来说,

  1. 我怎样才能知道所选歌曲已播放完毕?
  2. 歌曲播放完成后如何更新滑块?
0 投票
2 回答
231 浏览

android - 尝试在后台执行操作时出现 MissingPluginException

我的大部分后台代码都以 结尾MissingPluginException,我不知道为什么,但我按照它所说的那样实现了一切;我尝试了所有可能的在线解决方案,但没有任何效果;现在,当我尝试使用 home_widget 插件从 android-home-widget 播放音频时, 我正面临着 audio_service插件

最少的代码:

错误信息:

颤振医生:

出现此错误的插件最多的是path_provider插件,它永远不会在后台运行;

有什么建议吗?

编辑

github:https ://github.com/ryanheise/audio_service/issues/789