- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
1) 当我换歌时, Remote 删除上一首歌曲图像,制作默认歌曲图像,制作下一首歌曲图像。我不想看到默认图像。我花了一些时间来寻找解决方案。
2) 当AVPlayer 是直播声音时, Remote 变为非事件状态并带有圆圈箭头(进入圆圈箭头是数字15,这是什么意思??)。
这是我播放声音的代码:
public func playAVSound(trackName : String) -> String {
let path = _findPath(trackName: trackName);
if (path == "") {
return "getting url"
}
if (self.AVPlayerVC.player == nil) {
print("Init remote control events...")
UIApplication.shared.beginReceivingRemoteControlEvents()
let commandCenter = MPRemoteCommandCenter.shared()
commandCenter.nextTrackCommand.isEnabled = true
commandCenter.nextTrackCommand.addTarget(self, action:#selector(self.next))
commandCenter.previousTrackCommand.isEnabled = true
commandCenter.previousTrackCommand.addTarget(self, action:#selector(self.previous))
}
if (self.AVPlayerVC.player != nil && self.play_info.trackName == trackName) {
if (self.play_info.paused!) {
self.AVPlayerVC.player?.play()
self.updatePlayInfo(number: Global.PlayList.find_by_trackName(trackName: trackName), trackName: trackName, path: path, paused: false)
return "continue"
} else {
self.AVPlayerVC.player?.pause()
self.play_info.paused = true
return "pause"
}
}
let nsurl = NSURL(string: path)
if let url = nsurl {
print("Play AV from : \(url)")
let item = AVPlayerItem(url: url as URL)
if (self.AVPlayerVC.player?.currentItem == nil) {
self.AvPlayer = AVPlayer(playerItem: item)
self.AVPlayerVC.player = self.AvPlayer
self.AVPlayerVC.player?.automaticallyWaitsToMinimizeStalling = false
} else {
self.AvPlayer?.replaceCurrentItem(with: item)
}
NotificationCenter.default.addObserver(self, selector: #selector(self.playerDidFinishPlaying), name: .AVPlayerItemDidPlayToEndTime, object: item)
self.AVPlayerVC.player?.play()
self.updatePlayInfo(number: Global.PlayList.find_by_trackName(trackName: trackName), trackName: trackName, path: path, paused: false)
return "playing"
} else {
print ("Incorrect nsurl")
}
return "error"
}
private func _findPath (trackName: String) -> String {
let n = Global.PlayList.find_by_trackName(trackName: trackName)
var path = ""
if (n >= 0) {
let p_item = Global.PlayList.PlaylistItems[n];
if (!p_item.fromData!) {
if (p_item.playing_url == nil) {
NetLib.makeTrackUrl(trackName: trackName, closure: self.playAVSound)
} else {
path = p_item.playing_url!
}
} else {
path = NetLib.makePath(filename: p_item.filename!)
}
} else {
print("Error find_path: \(trackName) was not found in playlist")
}
return path
}
这是改变歌曲的代码
@objc private func previous() -> MPRemoteCommandHandlerStatus{
var n = self.play_info.number! - 1;
if (self.play_info.number == 0) {
n = Global.PlayList.size() - 1;
}
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "load"), object: nil)
_ = self.playAVSound(trackName: Global.PlayList.PlaylistItems[n].trackName!)
print("Previous song \(Global.PlayList.PlaylistItems[n].trackName!)")
return .success
}
最佳答案
我解决了音频流式传输时的控件问题。我不是从主线程播放音频,因此远程控制在该线程中工作不正确。
关于ios - MPRemoteCommandCenter 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44230306/
我正在制作一个 iPhone 音乐应用程序来处理音乐播放和暂停并维护自己的播放列表。我正在尝试使播放/暂停 Remote 功能(在耳塞和上滑屏幕上)适用于我的应用程序中的音乐播放。 下面是我在音乐播放
如何从通知中心删除 MPRemoteCommandCenter.shared()。我尝试了这段代码,但只有命令和操作被禁用。我需要从通知中心删除完整的通知。当我们终止应用程序时,它不会出现在通知栏中,
亲爱的同事们,您好,我需要您的帮助。当我添加 MPChangePlaybackPositionCommand 时,我的所有控件(锁定屏幕上的播放/暂停/倒播/下一首轨道)已自动禁用。锁屏上的播放 sl
MPRemoteCommandCenter 有两个问题: 1) 当我换歌时, Remote 删除上一首歌曲图像,制作默认歌曲图像,制作下一首歌曲图像。我不想看到默认图像。我花了一些时间来寻找解决方案。
我已经实现了播放音频的 Avplayer。我已经使用 MPRemoteCommandCenter 来访问锁定屏幕。我可以通过以下方式获得所有访问权限: let commandCenter =
我正在开发一个处理 MPRemoteCommandCenter 类的录音应用程序。我已经设置了命令中心来播放和暂停命令。下面添加了代码片段。我遇到了 pauseCommand 的问题。 我从应用程序开
我在 MPRemoteCommandCenter 中切换播放和暂停按钮时遇到问题。无论出于何种原因,音频和事件都将正常工作,但命令中心不会将播放按钮更改为暂停按钮。这是我的代码... - (void)
我有一个显示 .m3u8 流的视频播放器。我已尝试实现远程控制,但该小部件并未同时出现在锁定屏幕、通知中心和命令中心中。 我只需要有播放暂停、音量控制和一些静态信息,如标题、艺术家和艺术作品。 这是我
我正在出于自己的目的编写一个应用程序,旨在无论系统中发生什么情况都能获取播放暂停事件。我已经做了这么多工作 let commandCenter = MPRemoteCommandCenter.shar
我有一个 iOS 9 应用程序,它使用 AudioGraph 播放类似 MIDI 的歌曲。我已经使用 MPRemoteCommandCenter 设置了远程控制命令,并使用 MPNowPlayingI
我在 iPhone 上使用 MPRemoteCommandCenter 和 MPMusicPlayerController.applicationMusicPlayer。 我正在尝试在用户播放音乐并双
我正在开发用 Swift 编写的音乐播放器应用程序,使用 AVPlayer 播放音频流,一切都很好 但是当我尝试将 MPRemoteCommandCenter 添加到我的应用程序时,出现了很多错误,我
我不知道如何切换播放和暂停按钮。我试过 TogglePlayPauseCommand。但它不起作用。 最佳答案 您能否发布有关如何尝试实现 TogglePlayPauseCommand 的代码?我认为
我一直在编写使用 [MPMusicPlayerController applicationMusicPlayer] 播放音乐的代码。 这已成功运行,并将在控制中心屏幕上显示当前播放轨道的详细信息。 不
我正在构建一个音乐播放器应用,一切正常。到目前为止,我一直在使用系统音乐播放器,但现在想改用应用程序音乐播放器,这就是我遇到问题的地方——我这辈子都不知道如何获得我的音乐播放器从 iOS 控制中心调用
MPRemoteCommandCenter 多次调用处理程序 block 并导致对选择器方法的不必要调用。 这是代码片段: MPRemoteCommandCenter *commandCenter =
我目前正在使用 AVSpeechSynthesizer 进行文本转语音。用于播放的类别是 AVAudioSessionCategoryPlayback 并且 AVAudioSession 设置为 Ac
我正在使用 MPRemoteCommandCenter 更改我的音乐广播应用程序中的歌曲。但是当我从锁定屏幕按下下一首轨道按钮时,它会跳 3 步而不是一步。 这是我的代码: func setupRem
我正在将 MPNowPlayingInfoCenter 集成到音乐播放应用中。当我在 iOS 模拟器中运行它时,它与 MPRemoteCommandCenter 的集成工作得很好。当我在设备上运行相同
Apple doc说“您可以通过将其启用属性设置为 NO 来禁用相应的 MPRemoteCommand 对象。” 我提到了 Is there a public way to force MPNowPl
我是一名优秀的程序员,十分优秀!