电表走的快是什么原因| 如何查自己是什么命格| 糖尿病能吃什么零食| hpv有什么症状| 阴沟肠杆菌是什么病| 睾丸长什么样| 肚子胀气吃什么好| 下葬有什么讲究或忌讳| 6月28日是什么日子| 蜂蜜的主要成分是什么| 1975年属兔是什么命| cdts什么意思| 海绵体充血不足吃什么药| 杨桃是什么季节的水果| 吃什么水果| 梦到自己杀人是什么意思| 前列腺挂什么科| 梦见狗咬自己是什么意思| 椎体楔形变是什么意思| 7月8日是什么星座| 贵妃是什么意思| 肋骨神经痛吃什么药| 没有什么过不去| 乳腺结节3类什么意思| 屎为什么是黑色的| 不出汗的人是什么原因| 心跳突然加快是什么原因| 栀子对妇科有什么功效| 童心未泯什么意思| 脚踝肿是什么病| 中度脂肪肝吃什么药| 什么桥下没有水| 明天属什么生肖| 夏侯霸为什么投降蜀国| 头孢什么样子图片| 粗茶淡饭下一句是什么| 小儿肠炎吃什么药最好| 什么手机信号最好最强| 吃生姜对身体有什么好处和坏处| 女人盗汗吃什么好得快| 哮天犬是什么狗| 感恩节吃什么| 颞下颌关节挂什么科| 脚踩棉花感见于什么病| 结石不能吃什么| 喝酒对身体有什么影响| sma是什么| 睡觉后腰疼是什么原因引起的| 咳嗽吐血是什么原因| 冉是什么意思| 经常流鼻血是什么情况| 头皮屑大块是什么原因| 半夜12点是什么时辰| 脚气看什么科| 什么名字好听| 精湛是什么意思| 吃什么美容养颜抗衰老| les是什么意思| 副处长是什么级别| 舌头咬破了用什么药| 印度人口什么时候超过中国| kid什么意思| 喝可乐有什么好处| 太五行属什么| 殚精竭虑是什么意思| 银手镯对身体有什么好处| 脱肛和痔疮有什么区别| 血糖高的人应该吃什么食物最好| 八月七号是什么星座| 长期便秘吃什么药效果最好| 眼睛出现飞蚊症什么原因怎么办| 鸟衣念什么| 霍霍人什么意思| 不踏实是什么意思| 吃什么菜减肥| 支气管炎吃什么药有效| u熊是什么意思| 皮肤白斑是什么原因| 起鸡皮疙瘩是什么原因| 龋病是什么意思| 阴血亏虚吃什么中成药| 健脾祛湿吃什么药| 肌层回声不均匀是什么意思| vc是什么药| rock什么意思| 常熟有什么好玩的地方| 精英是什么意思| 女人吃什么排卵最快| 三个鱼读什么| 冲服是什么意思| 王玉是什么字| 免疫力低下吃什么好| 前列腺钙化灶是什么病| 头发五行属什么| 脾虚喝什么泡水比较好| 避免是什么意思| 明年生肖是什么| 非典型细胞是什么意思| 不可一世是什么意思| 什么食物补气血| 宫颈短是什么意思| 猫有什么特点| 府绸是什么面料| 蜜蜂飞进家里预示什么| 恨天高是什么意思| 舒俱来是什么宝石| 快菜是什么| 梦见买白菜是什么意思| hpv病毒是什么病毒| 新五行属什么| 射频是什么| 肌腱属于什么组织| tpp是什么意思| 2pcs是什么意思| 道谢是什么意思| 你要什么| 尿激酶的作用及功效是什么| 九五年属什么| 转卖是什么意思| 粉色代表什么| 炸毛是什么意思| 名落孙山的意思是什么| 木薯淀粉可以用什么代替| 尾戒代表什么| 结石有什么症状| 梦见好多动物是什么意思| 肠痉挛有什么症状| 为什么会发烧| 五十年婚姻是什么婚| 梦见搞卫生什么意思| 什么是前列腺增生| 大小姐是什么意思| 泥鳅喜欢吃什么| 腹痛拉稀什么原因| 大便阳性说明什么问题| 一个月一个屯念什么| 流口水什么原因| 茶卡是什么意思| 肝火旺盛吃什么药| 牛肉含有什么营养成分| 四点半是什么时辰| 司局级是什么级别| 司法鉴定是干什么的| 芳华什么意思| 96615是什么电话| 梦字五行属什么| 乳腺癌长在什么位置| 梦见嫖娼是什么意思| 狗狗有什么品种| 炒菜用什么油比较好| 梦见盖房子什么意思| 羽立念什么| 老打嗝是什么原因| 吃南瓜有什么好处| 轮回是什么意思| 五行缺土是什么意思| 天冬氨酸氨基转移酶高是什么原因| 甲功七项挂什么科| lr是什么| 电影下映是什么意思| 腠理是什么意思| 左眼皮跳跳好事要来到是什么歌| 梅花开在什么季节| 豺狼虎豹为什么豺第一| 娇韵诗属于什么档次| 感冒有黄痰是什么原因| 女人手心热吃什么药好| moncler是什么牌子| 安全期一般是什么时候| 宋威龙什么星座| 不长头发是什么原因| 卵巢囊肿有什么症状| 乌鸡汤放什么材料| 木命人五行缺什么| 广西属于什么方向| 三七粉什么时间吃最好| 谷旦是什么意思| 儿童风寒咳嗽吃什么药| 吃什么东西增强免疫力| 花中西施指的是什么花| 皮下出血是什么原因| 沙加女是什么字| 嘴巴里发苦是什么原因| 癫疯是什么原因引起| 威士忌兑什么好喝| 子宫轻度下垂有什么办法恢复| 焦虑症应该挂什么科室| dbm是什么意思| 黄姜长什么样图片| 嘴子是什么意思| 血糖高早饭吃什么最好| sku是什么| 早晨起来嘴苦是什么原因| 忤是什么意思| 查肝炎做什么检查项目| 长痣是什么原因引起的| ochirly是什么品牌| 憩室是什么病| 女人梦见掉头发是什么征兆| 蚊虫叮咬用什么药膏| 胃镜能检查出什么| 脚痒脱皮是什么原因| 1889年属什么生肖| 三叉神经吃什么药好| 梦见捡到钱是什么预兆| 前列腺炎用什么药| 痔瘘和痔疮有什么区别| 荔枝吃了有什么好处| 臆想症是什么意思| 答辩是什么| 抗体和抗原有什么区别| 釜底抽薪是什么计| 拉青色大便是什么原因| 梦见盖新房子是什么意思| 新生儿干呕是什么原因| 牙齿痛是什么原因| 10月24号什么星座| 球蛋白偏高是什么意思| 根充是什么意思| 什么是会车| 猫有什么品种| 大便隐血阴性是什么意思| 旁听是什么意思| 水银中毒会出现什么状况| 巨蟹座的幸运色是什么颜色| 唐卡是什么材料做的| 膝盖痛用什么药| darling是什么意思| 函询是什么意思| 减肥为什么要多喝水| 血小板减少是什么症状| 淡水鱼什么鱼最好吃| 尿潜血是什么意思| 吃完晚饭就犯困是什么原因| 为什么会血脂高| 紫苏泡酒有什么功效| hp是阳性什么意思| 先什么后什么| mu是什么单位| 美人尖是什么意思| 男生喜欢什么样的女生| 撤退性出血是什么颜色| 脸上过敏擦什么药膏| 神经性耳聋是什么原因造成的| 什么叫磁场| 吃生蚝有什么好处| 大明湖畔的夏雨荷是什么意思| 女性尿道感染吃什么药| 早晨起床手肿胀是什么原因| 生不逢时什么意思| 默念是什么意思| l5s1椎间盘突出是什么意思| 寿司的米饭是什么米| elf是什么意思| 川流不息什么意思| 胆小怕事是什么生肖| 精油有什么功效| 沙漠有什么动物| 7月6日是什么星座| 胃溃疡不能吃什么食物| 后天是什么日子| 吃什么能增强免疫力和抵抗力| 眉骨疼是什么原因| 抬头纹用什么护肤品可以去除| 百度

View in English

  • Global Nav Open Menu Global Nav Close Menu
  • Apple Developer
Search
Cancel
  • Apple Developer
  • News
  • Discover
  • Design
  • Develop
  • Distribute
  • Support
  • Account
Only search within “”

Quick Links

5 Quick Links

Videos

Open Menu Close Menu
  • Collections
  • Topics
  • All Videos
  • About

More Videos

  • About
  • Transcript
  • 满树和娇烂漫红 万枝丹彩灼春融

    百度 就这样,村容村貌开始一天天整洁起来。

    Discover techniques for streaming high-quality audio to bandwidth-limited networks and new audio codec support. We'll share some best practices for supporting the xHE-AAC, FLAC, and Apple Lossless Audio audio codecs, including limited support for multichannel AAC.

    Resources

    • HTTP Live Streaming (HLS) authoring specification for Apple devices
      • HD Video
      • SD Video

    Related Videos

    WWDC20

    • Improve stream authoring with HLS Tools
    • Optimize live streams with HLS Playlist Delta Updates
    • What's new in streaming audio for Apple Watch
  • Search this video…

    Hello and welcome to WWDC.

    Hello, everyone. I hope you're having a great conference.

    Now, if you're looking to improve the data efficiency, and at the same time, the fidelity of your HLS audio streams, you've found the right session. I'm Simon, and I'm a media streaming engineer here at Apple. Together, in this session, we're going to discover how to deliver a better HLS audio experience.

    Before we begin, I want to say that I'm going to provide to you some additional guidance that supplements the existing HLS authoring specification for Apple devices, a document that is available at developer.apple.com. I encourage you to become familiar with the contents of that document before we get into this session. So, if you need to, by all means, pause me. I'm a video on demand. Go check that out, get familiar with the recommendations there, and come right back in here. Without further ado, let's get into it.

    Today we're going to cover two topics. The first topic, I'm going to introduce to you three new audio codecs that are new to HLS in the 2020 OS releases, and then I'm going to have a conversation with you about using two of these audio codecs in a multichannel setting. Let's discover the new audio codecs for the 2020 OS releases. The first one is xHE-AAC. That stands for Extended High-Efficiency Advanced Audio Codec. And all of those adjectives are there to remind you that this audio codec is a very efficient audio codec at low to medium bit rates. Bit rates below, say, 200 kilobits per second.

    The other two audio codecs that are new to the 2020 OS releases are Lossless Audio Codecs. They are FLAC, which stands for the Free Lossless Audio Codec, and Apple Lossless. xHE-AAC is new to HLS in the 2020 releases, but it was available for file-based playback in the 2019-based releases. That's iOS 13 and macOS Catalina. FLAC and Apple Lossless have been available for file-based playback for quite some time. Let's chat about the first one, xHE-AAC. xHE-AAC also has another name in the MPEG-D standard, and that's USAC, and that stands for Unified Speech and Audio Coding.

    That name is there to remind you that this is also a codec that is specifically tuned to speech reproduction. It's also very good as a general-purpose audio codec. Specifically, like I said before, those low to medium data rates. Let's have a look now at how xHE-AAC compares with the AAC family at large. It's a little bit different. The AAC family starts with a codec that you're all familiar with, which is AAC-LC. That stands for AAC Low Complexity. We recommended the use of this codec to data rates as low as 96 kilobits per second.

    We identify this codec using the ISO syntax for the codec attribute, which is mp4a.40.2.

    This codec evolved into another codec, which is HE-AAC. That's the High-Efficiency Advanced Audio Codec. It does so with the addition of an additional coding tool called SBR. That stands for Spectral Band Replication, where high frequencies are reconstructed from lower frequencies that are present in the core AAC media encoding.

    We recommended the use of HE-AAC to data rates as low as 48 kilobits per second.

    You identify HE-AAC with the codec string mp4a.40.5.

    But it doesn't stop there. This evolved into a version two, HE-AAC v2, with another coding tool called Parametric Stereo. Parametric Stereo reconstructs a second audio channel from a single audio channel-- a mono audio channel-- with some additional parametric data. And we recommended the use of HE-AAC v2 to data rates as low as 32 kilobits per second.

    Now, that's where the interoperability ends. All three of these audio codecs have a level of interoperability. You can decode a HE-AAC v2 with a HE-AAC decoder. There is a caveat to this, of course, which is that you'll only get one channel of audio, because the earlier codecs don't know how to deal with Parametric Stereo.

    So let's take a look at what xHE-AAC does.

    The backwards compatibility isn't there in xHE-AAC. The coding tools remain, or are quite similar, but they're even more advanced. They've been refined. They're more efficient. It's very important, therefore, to identify xHE-AAC correctly in your master playlists, with the ISO syntax for the codec attribute being mp4a.40.42.

    This is such an advanced codec, and so efficient, that we recommend it's used down to 24 kilobits per second. Another way that xHE-AAC differs from the rest of the AAC family is how the standardization bodies have approached it. Now, we've always recommended in the HLS authoring guideline to include loudness and DRC, or Dynamic Range Control, metadata. What is Dynamic Range Control? Well, it's extra metadata that allows the media system to continuously adjust the audio signal levels to reduce the level difference between loud and soft passages.

    We've recommended you include this metadata, or to ensure that your program content and any interstitials within it are all normalized to the same volume level.

    Our recommendations are consistent with the new standard from ANSI/CTA-2075, which also has some informative text recommending the inclusion of this metadata.

    Another standard that differs from this and, in fact, goes a little bit further, is CMAF.

    CMAF stands for the Common Media Application Format. It's a format that seeks to unify media encodings between MPEG-DASH and HLS. It goes a step further in this regard in that it mandates the inclusion of this metadata in your media encodings.

    For the rest of the AAC family, CMAF merely recommends that you include this metadata. So the takeaway is that DRC is becoming more relevant throughout our industry, and your inclusion of this metadata is the way forward.

    Let's take a look now at how HLS intends to support xHE-AAC on Apple devices. So, as I mentioned before, it's really important for xHE-AAC that we advertise its use through the codecs attribute, again, with the syntax mp4a.40.42.

    AVPlayer, from the AVFoundation framework, supports mono and stereo channel configurations. There is no multichannel support at this time.

    Carriage is restricted to the fragmented MP4 container type, and the only encryption mechanism supported is common encryption.

    So, how can you leverage xHE-AAC in your software and services? Well, first of all, let me reiterate, it is a well-suited codec for use for data rates as low as 24 kilobits per second, all the way up to the maximum that we have recommended, AAC, at 160 kilobits per second for stereo.

    And the simplest way to leverage xHE-AAC in your software and services is to add additional low bit rate audio variants to your master playlist. The motivations for doing this are twofold. One, you want to reach customers on low data rate networks. Data rate networks, and in scenarios where they would otherwise stall. The second motivation is to reach customers on data rate constricted devices-- devices that have multiple different paths of network connectivity. An example of such a device is Apple Watch. And we have another session entitled "What's New in Streaming Audio on Apple Watch," and I encourage you to check it out. But I've got an example right here. Suppose you've got an existing master playlist in your content library that advertises two audio variants. The first audio variant is leveraging HE-AAC and uses 48 kilobits per second. The second audio variant in this playlist uses AAC-LC and is at 64 kilobits per second. To reach customers on low data rate networks and prevent them from stalling during playback, and to reach customers on data rate constricted devices, you need only introduce a new variant leveraging xHE-AAC advertising its codec string correctly. And now you've got a variant at 24 kilobits per second.

    There are some additional ways that you can leverage xHE-AAC in your software and services. The first way is you can parallel some or all of your AAC codecs or your AAC variants with xHE-AAC. And your motivation here is to provide high-fidelity variants for the same given bit budget.

    Another way that you can leverage this codec is you could see it as an opportunity to introduce DRC support to your playlists, migrating your library to a future where DRC is becoming increasingly relevant. So, you may be wondering, how can you coerce an AVPlayer into choosing this high-fidelity audio variant over your existing set of audio variants? Well, the answer is, we've introduced a new attribute to the string tag. It's called the SCORE attribute. We detail the SCORE attribute with more detail in the session entitled "Improved Stream Authoring with HLS Tools." I encourage you to check it out. However, I've got an example right here. In this example, I've got two audio variants.

    The first audio variant is advertised as xHE-AAC.

    Its bit rate is advertised at 94 kilobits per second.

    I've got a second audio variant at AAC-LC at 96 kilobits per second.

    And I've scored the xHE-AAC higher than the AAC-LC variant.

    And you might also note that the bandwidth of the xHE-AAC variant is lower than the AAC-LC variant.

    Using the SCORE attribute, the AVPlayer will prefer the xHE-AAC variant where support exists.

    Let's switch gears now and talk about lossless audio. The new audio codecs, as I've already mentioned, are FLAC and Apple Lossless. Both of these are open source, but they've got an advantage over the other. FLAC is in wider general use throughout the industry, whereas Apple Lossless has more established carriage in MPEG-4. How does HLS intend to support lossless audio in the 2020 OS releases on Apple devices? Well, we have to advertise its use correctly.

    Again, it's very important that we advertise its use using the codec strings "fLaC" where the "L" and the "C" are capitalized, no matter how strange that looks. And for Apple Lossless, it's "alac." AVPlayer in the AVFoundation framework supports all the channel configurations from these two audio codecs, up to eight channels. More about that in just a minute.

    Carriage is restricted to the fragmented MP4 container type.

    And the only encryption mechanism supported is common encryption.

    So, how can you leverage lossless audio in your software and services? Well, the first one is you can add additional high bit rate audio variants to your playlists. And you would only do this if you know that your customers have plentiful bandwidth.

    You would only also consider this when your customers expect exceptionally high audio fidelity.

    Let's now move to our second topic for this session and have a look at how we're going to use these lossless audio channels in a multichannel usage. So, as I alluded to earlier, FLAC and Apple Lossless support up to eight channels. That's in channel configurations of 5.1 and 7.1.

    Now one thing to note is that the channel layouts of the two audio codecs are slightly different. And you must follow these if you want the audio to come out the right speakers. Apple Lossless requires the center channel first, then left and right. Whereas FLAC requires left and right channel first, and then the center channel. By now you'll hopefully understand that lossless audio requires a much higher data rate than we're used to with lossy audio codecs such as AAC. But how much more? If I'm going to show you how much more FLAC requires when compared to AAC-LC, I'm going to need to make a lot more space in my graph. I'm going to have to change the y-axis. Hang on a second. I'm going to do that right here.

    And there we go. Okay. AAC-LC at 48 kilohertz is still 160 kilobits per second. But now that I've changed my graph around a little bit, it's really, really small. That gives me lots of space to introduce lossless audio. The lossless audio is nearly four times more. At 16 bits per sample, 48 kilohertz, we're nearly one megabit. On the high end, where we've got 24 bits per sample and 96 kilohertz sampling rate, we're pushing nearly three megabits. But it doesn't stop there. You see, lossless audio codecs like AAC, you're able to configure the encoder to deliver a specific target bit rate. You can't do that with lossless audio codecs. They will consume as much data as they need in order to deliver the audio fidelity that you have requested.

    So these are average data rates. The full picture is when I add the peak data rates. Now, at the closest audio fidelity to our AAC-- that's 16 bits per sample, 48 kilohertz sampling rate-- we are over one megabit. A similar story is present in multichannel. Note that the y-axis now changed, and AAC-LC is 400 kilobits per second. The next closest in lossless is in excess of two megabits per second, and on the high end, it's eight megabits per second for 24 bits per sample, 96 kilohertz sampling rate, and six channels of audio.

    So it's very important that we consider how to scale up adaptively to these very high bit rates.

    And the way that we recommend you do that is include multichannel AAC in your master playlists. Apple's software package compressor can encode it.

    But one thing to note about multichannel AAC is it doesn't enjoy uniform support across Apple devices. It can't be decoded to its full channel complement. On devices where it can't be decoded to its full channel complement, you'll get two channels, or stereo. But do note, this does not preclude us from the requirement of including stereo AAC for backwards compatibility. Let me demonstrate with an example. Here we've got a playlist with the media tags up top. They declare the number of channels. Let's move that out of the way because it's not really relevant to our discussion here. The highlighted variants are the variants that are eligible for playback on a device that is able to decode multichannel AAC to its full channel complement. Assuming we're on such a device, and the device has an audio route that can render multichannel audio, we can scale adaptively from HE-AAC multichannel up to AAC-LC multichannel, all the way up to two megabits per second, lossless multichannel. The same story is true of stereo.

    We can scale adaptively from an AAC stereo in a low bit rate to a high stereo AAC bit rate, and then scale adaptively up to a full megabit for stereo lossless.

    Now, suppose we omit the multichannel AAC from our playlist. I don't recommend this, so don't try this at home. Here's the same playlist with the multichannel AAC omitted. Again, I've got my media tags at the top, and I'm just going to remove them.

    Now, if we're on a device that supports a multichannel output-- its current audio route supports multichannel rendering-- there's a single audio variant that is eligible for playback. It's the lossless audio variant, and it requires two megabits per second. If your customer cannot sustain two megabits per second, your playback or their playback will stall.

    Now, because we mandate the inclusion of stereo AAC in all playlists, the playback of the stereo will still adaptively scale from a low bit rate AAC to a high bit rate AAC, all the way up to lossless stereo.

    So we've learned a lot here. Let's summarize everything that we've learned.

    I've introduced three new audio codecs. And we've talked about the need for including DRC metadata in your media encodings. And it's important in the industry going forward. We've also talked about the considerations for using multichannel lossless and utilizing multichannel AAC as a means to scale up to those very high data rates. So, what should you do when you get home? Well, maybe you are already home. Well, consider how to employ xHE-AAC to target customers on low throughput networks.

    And then, how you can use this codec to better utilize their existing throughput to deliver better audio fidelity.

    And do consider how to use lossless audio codecs if it's applicable to your software or service. I hope you've learnt lots and have a great rest of conference. And as always, we wish you safe travels home, even if that's to the adjacent room.

Developer Footer

  • Videos
  • WWDC20
  • Deliver a better HLS audio experience
  • Open Menu Close Menu
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    Open Menu Close Menu
    • Accessibility
    • Accessories
    • App Extensions
    • App Store
    • Audio & Video
    • Augmented Reality
    • Design
    • Distribution
    • Education
    • Fonts
    • Games
    • Health & Fitness
    • In-App Purchase
    • Localization
    • Maps & Location
    • Machine Learning
    • Open Source
    • Security
    • Safari & Web
    Open Menu Close Menu
    • Documentation
    • Tutorials
    • Downloads
    • Forums
    • Videos
    Open Menu Close Menu
    • Support Articles
    • Contact Us
    • Bug Reporting
    • System Status
    Open Menu Close Menu
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles
    • Feedback Assistant
    Open Menu Close Menu
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program
    • News Partner Program
    • Video Partner Program
    • Security Bounty Program
    • Security Research Device Program
    Open Menu Close Menu
    • Meet with Apple
    • Apple Developer Centers
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Academies
    • WWDC
    Get the Apple Developer app.
    Copyright ? 2025 Apple Inc. All rights reserved.
    Terms of Use Privacy Policy Agreements and Guidelines
    早搏心律不齐吃什么药 补办港澳通行证需要什么材料 veromoda是什么牌子 暗网是什么意思 越睡越困是什么原因
    特别提款权是什么意思 全脂牛奶是什么意思 hardly什么意思 前列腺钙化有什么影响 什么什么龙什么
    nos是什么意思 赶集是什么意思 风包念什么 硫磺有什么作用 双子和什么星座最配
    五月十八什么星座 tmc是什么意思 甲亢有什么症状表现 相招是什么意思 肠胃不好能吃什么水果
    阳绿翡翠属于什么级别hcv8jop0ns5r.cn 荞麦长什么样子hcv8jop3ns0r.cn 吃李子不能吃什么hcv7jop5ns6r.cn 眼痒痒是什么原因引起travellingsim.com 肾病吃什么水果好hcv7jop7ns4r.cn
    遂什么意思hcv8jop4ns2r.cn 金牛座是什么象gangsutong.com 明目退翳什么意思hcv9jop8ns0r.cn 外阴瘙痒是什么病cj623037.com 家门是什么意思hcv9jop1ns9r.cn
    强肉弱食是什么意思bjcbxg.com 小腿麻木是什么原因引起的hcv9jop7ns0r.cn 什么叫平仓hcv8jop3ns2r.cn 对应是什么意思hcv8jop0ns5r.cn 香肠炒什么好吃hcv9jop4ns3r.cn
    郭靖属什么生肖hcv7jop9ns5r.cn 什么发抖hcv8jop2ns6r.cn 气罐和火罐有什么区别hcv8jop3ns9r.cn 网调是什么意思hcv9jop3ns9r.cn 胳膊麻是什么原因hcv9jop5ns0r.cn
    百度