我正在尝试通过A2DP/AVRCP发送跟踪信息.现在,音乐完全流式传输,但在"接收器"(即:汽车音频)上,"音轨信息屏幕"是空白的(在那里使用流行的播放器不是这种情况).任何的想法 ?
什么Android版本和设备支持AVRCP 1.3和1.4?
该应用程序需要什么来支持AVRCP 1.3(提供跟踪信息)?我们通过AudioTrack播放音频,而不是媒体播放器.
支持1.4需要什么?
是否有任何示例,源代码等,演示如何支持AVRCP 1.3和1.4?
我正在以编程方式生成音频文件,我想向其中添加元数据,例如标题和艺术家.我并不特别关心文件的格式是什么,只要AVPlayer读取它并将其发送到播放设备即可.(整个目标是将生成的音频及其曲目名称发送到蓝牙设备.我很高兴在iPhone上探索更简单的方法,无需编写文件或直接向文件添加元数据.)
到目前为止,我发现AVAssetWriter通常会抛弃它不理解的元数据,而不会产生错误,所以我有点磕磕绊绊地试图找到文件格式和键的组合是可以接受的.到目前为止,我还没有找到一个文件格式,我可以自动生成AVAssetWriter将添加任何元数据.例如:
let writer = try AVAssetWriter(outputURL: output, fileType: .aiff)
let title = AVMutableMetadataItem()
title.identifier = .commonIdentifierTitle
title.dataType = kCMMetadataBaseDataType_UTF8 as String
title.value = "The Title" as NSString
writer.metadata = [title]
// setup the input and write the file.
Run Code Online (Sandbox Code Playgroud)
我没有找到任何标识符或文件类型(我实际上可以生成)的组合,它将在文件中包含此元数据.
我目前的方法是将文件创建为AIFF,然后使用AVAssetExportSession将其重写为m4a.使用它我已经能够添加足够的元数据,iTunes将显示标题.但是,Finder的"文件信息"无法读取标题(它对iTunes m4a文件的标题).我的假设是,如果它甚至没有显示在文件信息中,它将不会通过蓝牙发送(我将尽快测试,但我没有我需要的硬件).
研究iTunes m4a文件,我发现了一些我无法用AVMetadataItem重新创建的标签.例如,排序名称(sonm).我不知道如何编写不是已知标识符之一的标签(我已经测试了所有263个AVMetadataIdentifiers).
在此背景下,我的核心问题是:
我稍后会探索第三方id3框架,但如果可能的话,我想用AVFoundation(或其他内置框架)来实现它.
我正在尝试在我的Android手机和我的车载PC之间实现AVRCP/A2DP连接.A2DP位基本上开箱即用,所以没有问题.我希望PC成为AVRCP CT(控制器)和A2DP接收器.手机是AVRCP TG(目标)和A2DP源.
我遇到麻烦的地方是获得我可以使用的任何类型的AVRCP连接.Windows 7附带一个工具栏应用程序,至少提供基本的播放/暂停/跳过/停止类型功能.所以它肯定适用于我没有任何额外驱动程序或其他方面的软件.然而,我的搜索在任何方式上都没有产生任何结果或创建L2CAP连接的文档,我相信我需要.
除非您使用Broadcom/Widcomm堆栈,否则32feet.NET库不支持L2CAP连接.购买新的BT USB设备可能是一个可行的解决方案,但目前我正在尝试用软件完成这一切:).即像这样,虽然有一些问题没有解决(或报告已解决)链接:如何在Widcomm SDK上使用L2CAP建立从Windows 7(控制器)到手机(目标)的AVRCP连接?
如果可能的话,我更喜欢C#,但是如果我有某种类型的库来与我的代码进行交互,那就没问题了(就像32feet.NET库一样,它可以很好地处理它所做的事情.)
这是我最接近的,但对我来说有点希腊,并不足以让我开始(我是一个嵌入式的人):http: //msdn.microsoft.com/en-us/library/窗户/硬件/ ff536674(v = vs.85)的.aspx
蓝牙在Windows上真的是一团糟吗?它似乎来自我的搜索?有多种不同的堆栈在API等方面似乎都有很大的不同.
谁能指出我正确的方向?我在这里和其他地方做了很多搜索/阅读其他帖子并没有取得任何进展.
谢谢
基督教
AVRCP 1.3是否支持专辑封面?根据媒体属性列表,专辑封面不包含在列表中.如果AVRCP 1.3支持专辑封面,信息如何通过?
我正在开发iOS
应用程序来控制音乐播放器Bluetooth LE
.我有BLE启用的外围设备(可穿戴手表),它将充当音乐遥控器.我发现AVRCP
配置文件是iOS提供的用于控制iPhone音乐的选项,但此配置文件基于经典的蓝牙配置文件(Not on BLE).
编辑:
有没有办法控制使用iOS BLE服务的音乐播放器?
请告诉我使用BLE服务在iPhone上控制音乐播放器(播放,暂停,下一个和上一个)的建议吗?
我是指这个链接
开发蓝牙(AVRCP 1.4)iPhone应用程序需要了解哪些规范
iOS蓝牙双模; 同时将BLE(GATT)连接到已连接的BR/EDR(A2DP/HFP)立体声耳机
请帮帮我.
提前致谢.
我期待为iPhone编写应用程序,它将能够控制汽车中的收音机和CD播放器.收音机和播放器可以使用蓝牙连接.
我开始这个问题是为了获得这个地方所需的所有信息.我几乎没有问题,但如果您发现任何我认为开始开发此应用程序并不重要的事情,请告诉我.
我已经阅读了关于AVRCP配置文件和汽车支持AVRCP 1.3的蓝牙设备,这对我来说已经足够了,考虑到可以在该协议版本中执行的控制.
我读了很多关于人们说"Apple设备只能互相交互","Apple设备无法通过蓝牙连接到非Apple设备","MFi程序是必须的,如果你想这样做","MFi不需要"等我的第一个问题是:
1)甚至可以通过蓝牙和控制广播电台和任何iPhone版本的音乐将iPhone(4,4S)与收音机和CD播放器配对吗?如果是,那么成功建立这种蓝牙有什么限制?
关于iPhone可以工作的角色的信息也很少.对于AVRCP,有两种角色:控制器和目标角色.阅读本文:https://developer.apple.com/hardwaredrivers/BluetoothDesignGuidelines.pdf我没有找到第二个问题的答案:
2)iPhone可以作为控制器并将AVRCP 1.3中规定的所有可用命令发送到目标设备(无线电和CD播放器)吗?
我还想了解这个特定问题的可用框架.我知道有几个,但如果有人认出我的问题是正确的,我想知道:
3)我应该使用哪种与目标设备交互的框架?
从开发人员的角度来看,我也对可用于与连接的蓝牙设备进行交互的API感兴趣.由于我正在创建自己的应用程序并为按钮分配操作,因此在分配给按钮的方法内部,我需要执行向目标设备发送消息.所以我的下一个问题是:
4)有没有人知道如何有一种方法将命令发送到目标设备(开始/停止/暂停/前进/后退等)作为XCode中提供的某些API的一部分,或者我通过蓝牙发送到目标的每条消息我需要根据协议文档制作的设备(自己制作整个消息(标题,正文,命令部分等))?
AVRCP是我完成此应用程序的想法.如果我错了,请告诉我.蓝牙具有不同的配置文件,并且当从一个设备发送消息时,据我所知,配置文件本身处理消息并将其解释并传送到目标设备,以便目标设备可以理解它.我不明白从我从Objective-C(或C)代码发送消息后,从iPhone发送到目标蓝牙设备的消息是如何处理的.这是我的主要疑问,它与问题4有关 - 我是否需要以正确的格式制作原始消息才能将AVRCP命令发送到设备,或者我可以使用某些API将这些消息识别为AVRCP(或任何其他类型) )并将其交付给目标设备?
最后一个问题(如果我认为对以前的所有问题都有任何积极的答案)从开发人员的角度来看最让我担忧.所以,如果有人有这个特定问题的经验,我会很感激任何答案或建议.
我真的很期待你的回答.我希望将就这一主题开始建设性和有用的讨论,并将编写许多有用的信息.
最好的祝福.
我想通过Android 4.3+设备将元数据发送到蓝牙设备.
我遇到的解决方案就是将google.android.music(谷歌音乐应用程序)发送给它,告知它有关元数据的信息,如下所示:通过A2DP/AVRCP发送跟踪信息.我可能错了,但这似乎不是AVRCP应该在android上工作的方式.
据我所知,最好的做法是使用RemoteControlClient.MetadaDataEditor,如下所示:
mRemoteControlClient.editMetadata(true)
.putString(MediaMetadataRetriever.METADATA_KEY_ARTIST, playingItem.getArtist())
Run Code Online (Sandbox Code Playgroud)
这实际上是谷歌自己建议的最佳做法:http://youtu.be/EC5-cEbr520?t = 25m18s
问题是我不能让我的应用程序使用建议的RemoteControlClient.MetadaDataEditor类将元数据发送到蓝牙设备,但使用谷歌音乐应用程序的意图它的工作原理.
有人知道为什么会这样吗?将元数据发送到蓝牙设备的最正确方法是什么?谢谢!