Android副屏音频同步

Android second screen audio synchronization

为荷兰电影 "App" (http://www.imdb.com/title/tt2536436) 开发了第二个屏幕应用程序。此应用程序与电影的音频同步,以从其他角度提供有关某些场景和其他电影片段的额外细节。好像和电影的声音是同步的。

对于一个学校项目,必须开发一个类似的应用程序,所以我们想要达到相同的结果。有人知道有什么方法可以将应用程序内容与外部音频源同步吗?我们知道我们必须考虑要过滤掉的环境音频,但不知道从哪里开始。 MPEG2-TS 似乎通过一种称为 SMPTE 的协议进行了某种时间编码,但我们不知道如何 "listen" 在我们的 android 应用程序中进行这种时间编码。

有人知道吗?要使用任何外部库吗?

Here's an article 简要解释一些自动内容识别 (ACR) 技术:

Second screen apps use the microphone on your phone or tablet to listen to the TV and identify the channel, show or ad you are watching, and the precise location within it, based on one of two techniques:

Watermarking

Audio watermarking requires a series of inaudible “watermarks” to be encoded into the broadcast TV signal, normally using a hardware encoder in the playout suite or OB truck. Watermarks can be repeated regularly throughout the broadcast, providing a timecode, or used to trigger specific events such as questions or voting windows. The second screen app uses the device’s microphone to listen for each watermark, and decode the “payload” which uniquely identifies the channel and timecode or event.

Fingerprinting

Audio fingerprinting does not require the broadcast content to be modified. Instead, the TV content is analyzed before it is broadcast (or sometimes while it is being broadcast) and broken up into a sequence of “fingerprints” which are as unique as their name suggests. The second screen app uses an API to record a short segment of audio, and generates its own fingerprint, which is then compared to the “target” set of fingerprints, and if a match is found, the channel, show and timecode are identified.

感谢您的回复。我们使用水印技术来解决这个问题;我们添加了智能手机使用 FFT 分析听到的音频检测到的高频音频水印。当我们检测到正在观看的电视节目时,我们通过互联网获取该节目的信息。