小姨的女儿叫什么| 面部发红是什么原因| 婧是什么意思| eoa是什么意思| 黄体不足吃什么| 牙痛 吃什么药| 失败是成功之母是什么意思| 矢车菊在中国叫什么名| 送老师什么礼物| 甲亢和甲状腺有什么区别| 前列腺ca是什么意思| 蝉联的意思是什么| 优生四项是检查什么| 药流用什么药| 什么座| 艾斯挫仑是什么药| 歼31为什么没消息了| 身败名裂是什么意思| 心肌酶高是什么原因| 嫩绿的什么| 为什么时间越来越快| 棱长是什么意思| 迪丽热巴颜值什么水平| 煮中药用什么锅| 乌龟下蛋预示着什么| 梦见和邻居吵架什么预兆| 先明后不争什么意思| 螳螂捕蝉黄雀在后是什么意思| 虫至念什么| 佛法是什么意思| 干燥症是什么原因引起的| 大便溏泄是什么意思| 放生是什么意思| 无花果什么品种最好吃| 宫缩是什么原因引起的| 儿童办护照需要什么证件| 稷读什么| 女生左手中指戴戒指什么意思| 甲亢是一种什么病| 人口基数是什么意思| 嗤之以鼻是什么意思| 生育酚是什么| 11月18是什么星座| 孕妇梦见下雨是什么意思| 1992年是什么年| loa是什么胎位| 牛叉是什么意思| 120是什么电话| 贾宝玉大名叫什么| 颜面扫地什么意思| 滑档是什么意思| 忌廉是什么东西| 做春梦是什么意思| 11.24是什么星座| 肺肿瘤有什么症状| 一个丝一个鸟读什么| 晴对什么| 核磁共振和ct有什么区别| 广西有什么特产| 蔚蓝是什么意思| 左边小腹疼是什么原因| 腱鞘囊肿是什么原因| 口角炎缺乏什么维生素| 小肚子左边疼是什么原因| 人体成分分析是检查什么| 看颈椎挂什么科| 为什么打喷嚏| 验孕棒什么时候测最准确| 谋划是什么意思| 与世隔绝的绝是什么意思| 小孩几天不大便是什么原因怎么办| 大胯疼是什么原因引起| 八月三日是什么星座| 什么除湿气效果最好| 巴沙鱼为什么不能吃| 首鼠两端什么意思| 什么人容易中暑| rh血型是什么血型| 捞仔是什么意思| 心包隐窝是什么意思| 什么是结缔组织病| 风流倜傥是什么意思| 宇宙之外还有什么| 肝内高回声什么意思| 囊肿是什么原因| 书五行属性是什么| 系带断了有什么影响| 女人更年期什么症状| 女娲补天是什么生肖| 罗汉果有什么功效和作用| 京五行属什么| 预防保健科是做什么的| 肝郁气滞是什么意思| 晚上适合做什么运动| 这几天为什么这么热| 2018 年是什么年| 鳞状上皮是什么意思| gt是什么| 例假一个月来两次是什么原因| kksk是什么意思| 铁蛋白偏高是什么意思| 见什么知什么| 直系亲属为什么不能输血| 吓着了有什么症状| 白细胞减少吃什么药| 瘦脱相是什么意思| 柔式按摩是什么意思| 肝损害是什么意思| 一抹多是什么意思| 好运是什么生肖| 凝血功能是什么意思| 睡觉就做梦是什么原因| 肋骨中间是什么器官| 高血压吃什么食物好| 馨字取名有什么寓意| 肉是什么意思| 小病不治下一句是什么| 支原体感染是什么意思| 始祖鸟什么档次| 残留是什么意思| 缘木求鱼是什么意思| 爱新觉罗是什么民族| 艾附暖宫丸什么时候吃| 什么是托特包| 为什么不| 边界尚清是什么意思| 女性腰疼应该挂什么科| 儿童嗓子哑了什么原因| 强悍是什么意思| 王爷的儿子叫什么| 梦到老公被蛇咬是什么意思| 肆无忌惮是什么意思| 什么话什么说| 邪气入体是什么症状| 为什么端午安康| 阴茎不硬吃什么| 眼睛干涩痒是什么原因| 鲁迅的原名叫什么| 初中毕业可以考什么证| 电瓶车什么牌子好| 内膜厚吃什么药掉内膜| 身体乳是什么| 肺部占位性的病变指什么| 脚趾抽筋是什么原因引起的| 海螵蛸是什么东西| 五指毛桃不能和什么一起吃| ck属于什么档次的品牌| 丘疹是什么原因引起的| 鲫鱼不能和什么一起吃| 幽门阳性是什么意思| 骨折吃什么| 挺拔的意思是什么| 牛仔裤配什么上衣| 八年是什么婚| 肩袖损伤吃什么药| 哺乳期上火了吃什么降火最快| 艾滋病有什么症状图片| pre是什么的缩写| 过敏性紫癜不能吃什么| 纠缠什么意思| 化疗能吃什么水果| 吃什么食物能提高免疫力| 妇炎康片主要治什么妇科病| 膈肌痉挛是什么症状| 什么是宫腔镜检查| 狗狗打疫苗前后要注意什么| 柚子是什么季节| 脚踏一星是什么命| 强心剂是什么药| 肝风上扰会有什么症状| g6pd是检查什么的| 世界上最长的英语单词是什么| 酪氨酸酶是什么东西| 知青是什么| 眼睛散光是什么原因造成的| 事无巨细什么意思| 骨折长骨痂有什么反应| 养胃吃什么水果| 卯五行属什么| 子宫癌是什么症状| alba手表是什么牌子| 一什么金鱼| 什么是假性抑郁症| 办什么厂比较好| 甲功三项是检查什么| 忧郁症挂什么科| 儿童经常流鼻血什么原因造成的| 身上长癣是什么原因引起的| 苹果熬水喝有什么功效| 嗓子不舒服吃什么消炎药| 金牛座是什么象| 乳腺点状钙化是什么意思| 人为什么没有尾巴| 做腹腔镜手术后需要注意什么| 四两棉花歇后语是什么| 网调是什么意思| 五味杂陈什么意思| 蔡英文是什么党派| 公诉是什么意思| 366红包代表什么意思| 怀孕吃辣对胎儿有什么影响| 和尚化缘的碗叫什么| 胃寒吃什么好| rrl是什么牌子| 为什么会长小肉粒| 中国属于什么人种| 口腔溃疡缺什么维生素| 左边肋骨下面是什么器官| 不愁吃穿是什么生肖| 鱼缸什么材质的好| 标新立异什么意思| 乙状结肠ca是什么意思| 脑血栓是什么意思| 桑葚和枸杞泡水喝有什么好处| 什么水果榨汁好喝| 股癣用什么药膏效果最好| 男的结扎有什么影响| 可乐杀精是什么意思| 舌头两边疼是什么原因| 克罗恩病有什么症状| 强盗是什么意思| 异类是什么意思| 肝硬化前期有什么症状| 主治医师是什么级别| 稀松平常是什么意思| 心颤是什么症状| 融合菜是什么意思| 脚背痛什么原因引起的| 六月二十四是什么星座| 老鹰代表什么生肖| 喉咙痒是什么原因引起的| 子宫息肉是什么| 史迪仔是什么动物| 头发油的快是什么原因| 什能组什么词| 脉络膜裂囊肿是什么病| 领结婚证需要什么| 象是什么结构| 健脾胃吃什么食物好| 血脂看什么指标| ws是什么意思| 为什么萤火虫会发光| 暖气是什么症状| 细菌性痢疾吃什么药| 姓彭的女孩子取什么名字好| 做梦梦到拉屎是什么意思| 什么是激素| 瞒天过海是什么意思| 融合菜是什么意思| 手掌发红是什么原因| 马牙是什么原因引起的| 小孩子黑眼圈重是什么原因| 胃老是恶心想吐是什么原因| 复杂性囊肿是什么意思| 中字五行属什么| 漂发是什么意思| 投射效应是什么意思| 金庸原名叫什么| 香叶是什么树叶| 绿茶喝多了有什么危害| 6月25日是什么日子| 肾小球滤过率是什么意思| 亚麻籽油是什么植物的籽榨出来的| 梦到结婚是什么预兆| 百度

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
  • p是什么单位

    百度   其次,蔡的主轴是跟柯文哲合作,持续弱化国民党,现阶段柯稳得跟什么一样,民进党下面那些斗鸡好斗成性,不让他们去发泄精力,去互相斗、去斗柯,难不成是要蔡用主席威信来压制派系吗?  所以,他认为,蔡英文不用事事亲为,养猫比较开心,唯一要注意的是两岸美日之间的关系与东亚情势,其次是用查党产绑住国民党、弱化蓝营,下面打打闹闹根本不看在眼里,劳工死活也不是她在乎的。

    Learn more about the framework powering SharePlay, and discover the different types of shared experiences you can implement for people who use your app. Explore a high-level overview of the framework's architecture and concepts, including how Group Activities and AVFoundation work in tandem, and learn how to implement it into your app. This is a great starting point to know more about SharePlay and how to integrate Group Activities in your apps.

    Resources

    • Group Activities
    • Supporting Coordinated Media Playback
      • HD Video
      • SD Video

    Related Videos

    WWDC21

    • Build custom experiences with Group Activities
    • Coordinate media experiences with Group Activities
    • Coordinate media playback in Safari with Group Activities
    • Design for Group Activities
    • Friday@WWDC21
  • Search this video…

    ? Bass music playing ? ? Pierre de Filippis: Hi there. My name is Pierre.

    I’m a manager on our Communication Applications team, and I’ll later be joined by my colleague Bhaskar.

    It’s my pleasure to welcome you to “Meet Group Activities.” I think we can all recognize that this past year, finding ways to stay connected has felt more essential than ever.

    This is incredibly important to us at Apple, and we wanted to give our users meaningful new ways to connect.

    As a result, in iOS 15, we’re creating a new way to enjoy activities together that makes you feel like you’re in the same room as the people sharing with you.

    And we call it "SharePlay." SharePlay is powered by the Group Activities framework, and in this session, we’re going to talk about how you can adopt it in your application.

    Before we get into some of those details, let me tell you a bit more about the key components of SharePlay.

    Let’s start with communication.

    We think dynamic and natural communication is a critically important part of a meaningful shared experience, so we’ve built SharePlay right into FaceTime and Messages.

    We are continually blown away by how central these apps have become in people’s lives and relationships, especially over the last year.

    And people don’t just use FaceTime and Messages to connect with that friend from 30 years ago once in a while.

    Instead, our users spend a significant amount of time communicating with the people that are closest to them; their closest friends, and their closest family.

    Those are the kind of people you would invite into your living room to watch a movie, for example, and that’s exactly what we want to facilitate with SharePlay.

    Let me give you an idea of how this works.

    It all starts with the concept of a session.

    Before a group starts an activity, they need to join a session so that everyone is together and ready to share.

    Once users are in a session, they can communicate via text, audio, and video in Messages and FaceTime just like they are used to.

    Switching between these modes of communication is dynamic and fluid, so they can easily choose a way to communicate that matches the moment.

    We also give users a consistent system-wide way to manage their session.

    Users can invite new people on the fly or leave the session entirely.

    Once you are in a session, users can navigate the entire system and drop in on any app.

    As a developer, you get it at all for free with Group Activities.

    So that’s communication.

    The next area we think is critical is platform experience.

    We want this experience to be simple, consistent, and available across our system and devices.

    With Group Activities, we’re building a unified experience that works across iOS, iPadOS, macOS, where Group Activities is available even for your website with WebKit.

    It also works beautifully on AppleTV, so you can enjoy it on the big screen.

    All of your devices are aware when you are in a session, so you can join from any device, and you can use multiple devices seamlessly.

    Finally, we also designed it to deliver great audio to Bluetooth devices, including AirPods.

    As part of platform experience, we’re doing something special for content playback.

    While we’re hoping you take full advantage of the expressiveness of the API to create many different types of SharePlay activities, we created some really cool enhancements that make shared media experiences effortless to build.

    The core of any media experience is the play button; it’s the moment when your users decide what content they want to spend their time on.

    Our goal is for every play button throughout the system to work with SharePlay.

    We want people to feel that any piece of media in your app is ready to kick off a shared experience whenever they’re on FaceTime with their friends, which is where you come in.

    We’re offering new APIs designed to fit right into your existing code paths.

    By adopting Group Activities, your play buttons can now start these shared media experiences whenever a group conversation is active.

    And we’ll use smarts over time to adapt to user behaviors, making shared experiences effortless.

    Next is time-synced playback.

    We think it’s super important that people are laughing together, smiling together, and reacting to content all at the same time.

    SharePlay handles keeping playback time synced at the platform level, so you can simply adopt and not have to worry about rolling your own.

    Now, this was a challenging problem to solve when it came to consuming content with SharePlay.

    We wanted to allow people to experience the exact same moments with one another, even if they were halfway across the world.

    Imagine seeing and hearing your friends laugh at something that hasn’t happened yet.

    Spoiler alert! So we built an entirely new playback-sync protocol with deep integration into the AVFoundation stack on the device.

    That means someone hits play, and everyone in the group immediately starts playback at the same time.

    Jump to a favorite scene and everyone else sees it too, allowing people to experience moments together in perfect sync, as if they were in the same room.

    The magic behind this playback synchronization means we won’t retransmit your media in any way.

    Everyone will get your full-fidelity video because it’s playing right from your app and streaming from your servers as it always does.

    And by ensuring that all viewers are watching the highest-quality video, they’ll get an immersive social-viewing experience that never compromises the quality of your content.

    We’re also doing some groundbreaking work to make communication feel natural during playback.

    With smart volume, when people speak up during playback, we’ll automatically duck the audio of the content and bring it back up when appropriate.

    So people can communicate via voice, video, and text naturally, just like they would if they were sitting in the very same room.

    And of course, it works beautifully with Picture in Picture, so the user can take your content along with them as they multitask on the device.

    So that’s a brief overview of what we’re doing on platform.

    And finally, content. And that’s where you come in.

    We want users to be able to enjoy the very best content that you've made available in your apps.

    When people are on a FaceTime call, they will expect to be able to go into your app and share your content.

    SharePlay is going to allow you to extend the touchpoints of your product and increase the times where your app is relevant to your users.

    And this will happen very organically.

    Existing users will evangelize for your app as they are using SharePlay with other people.

    Now that I’ve given you a brief overview of some of the key components of SharePlay, let’s turn our attention to Group Activities, a core concept of the framework.

    A Group Activity is an object representing something that can be shared and enjoyed with the people in the FaceTime call using SharePlay.

    Let me walk you through how a user would start a Group Activity in your app.

    While on a call, users can navigate to your app, and if you have adopted Group Activities, they will be notified that the app supports SharePlay.

    To configure the activity you want to share, you first need to create an object that implements the GroupActivity protocol.

    Once you’ve configured your activity, you call the prepareForActivation API to start sharing that activity.

    This API will offer the user the option to share that activity with everyone in the FaceTime call or just keep it local.

    If they decide to share with the group, Group Activities will notify you and let you join the GroupSession object.

    Once users have joined the Group Session, their video will be kept in sync with the group, even when they play, pause, or seek.

    Whenever those events happen, Group Activities will automatically notify the user as shown here.

    And finally, once users are done, they can choose to end the activity for themselves or for the whole group.

    It’s as simple as that! Now, let me hand it over to Bhaskar who's going to walk you through the rest of this presentation.

    Bhaskar Sarma: Thank you, Pierre.

    Hi, my name is Bhaskar, and I am an engineer on the FaceTime team.

    Now let’s talk about some of the high-level concepts and architecture behind this new framework.

    GroupActivities is a Swift-native framework that allows you to create shared experiences between users of your application when they are on a FaceTime call.

    Additionally, the framework also has a tight integration with AVFoundation, which allows you to easily create shared video and audio playback experiences.

    Before we go over the high-level concepts behind the API, I would like to talk about two key parts of the API, and these are the GroupActivity and GroupSession.

    GroupActivity is what your app uses to define the shared experience.

    It holds the information that your application needs for the shared experience.

    For example, if you are doing a shared audio or video playback experience, it might hold the URL of the content that is being played.

    Or your application might provide a custom shared experience.

    For example, you could be providing a draw-together experience.

    In that case, this would hold information about what the users are drawing.

    GroupSession is basically a representation of the group taking part in the shared experience.

    It provides access to things like the participants in the group.

    And there are additional APIs in the framework that you can use along with the GroupSession to send and receive data across devices.

    Please note the GroupSession is not meant to exchange large amounts of data.

    For example, if you are creating a shared listening experience, the GroupSession is not used to exchange the contents of the song.

    Instead, this channel is used by AVFoundation to keep content in sync by exchanging the play, pause, or seek commands.

    Also, the communication medium provided by GroupSession is end-to-end encrypted.

    This means no one other than your application on the device can read the data that is exchanged over this channel.

    Here I have two phones on the screen.

    The one on the left is my phone, and the one on the right is my teammate Pierre’s phone.

    And we are on a FaceTime call.

    Also, we have a sample application called "Awesome App" on the screen, and the app is ready to start a shared experience between me and Pierre.

    So in this case, the application on the device on the left is going to initiate the activity.

    The first thing the application needs to do is create an object that conforms to the GroupActivity protocol.

    In the example shown here, it is the AwesomeActivity object that conforms to GroupActivity.

    As I had mentioned earlier, this object conforming to the GroupActivity protocol contains information about the shared activity.

    For example, if you are creating a shared playback experience, it will have information about what content to play.

    Or if you are creating a custom experience -- like drawing something together -- it will have information about what to draw.

    Once the app has created an activity, the next thing it needs to do is call prepareForActivation on the activity.

    This causes the user to see a prompt asking for permission if they want to start an activity.

    We would like to take user consent before starting an activity as we do not want to cause surprise to them.

    Hence, this step is essential.

    And lastly, after the user has granted permission to start the activity, your app needs to call activate on the activity object.

    This tells the system that your app wants to start a shared experience.

    Next, let’s talk about observing sessions.

    Here we have the same app that we were looking at earlier.

    The application at this point has called activate on the activity object.

    Your application then needs to iterate over incoming sessions via an AsyncSequence on the GroupSession class.

    And then, when there is a session, the application gets handed the GroupSession object for the shared experience.

    Please note that this is the same step your application would take whether it was the initiating app or on the remote device receiving the session.

    To go into more details about initiating and observing group sessions, I would recommend you watch this WWDC session.

    Now that the application has been handed a session, it needs to set itself up before joining the session.

    Setting up the application before joining could mean different things based on the specific use case of the application.

    For example, if you are creating a custom experience -- like drawing something together -- this could mean loading up the assets needed for the shared experience before your user can join the experience.

    However, if your application is providing a shared media-playback experience, then it would involve something like this.

    Your application will hook up the AVPlaybackCoordinator of your AVPlayer to the GroupSession so that its associated AVPlayer can sync content over the communication channel provided by the framework.

    Keep in mind, this syncing support is not just limited to AVPlayer, but you can use any other custom video player you have today and still get support for syncing via an AVDelegating PlaybackCoordinator.

    And finally, once you are done setting up your application, your application calls join on the GroupSession.

    Once join is called, the system sets up the end-to-end encrypted channels between the apps running across different devices.

    At this point, your application is ready to sync data and let your users take part in the shared experience.

    If you're creating a custom experience, your application can use this channel to exchange data to keep your users in sync.

    This channel is also used by AVFoundation to keep media playback in sync by exchanging playback state when the user hits play, pause, skip, et cetera.

    Note that this channel is not meant to be used to exchange large amounts of data.

    Instead, use it to exchange information to keep your users in sync.

    Now your application is in a session, and your users are enjoying the shared experience.

    There is one more thing you can do to enrich the experience for your users, and that is post events using the framework.

    Events allow your users to know what is going on in the shared experience.

    For example, you can post events to let your users know when someone plays, pauses, or skips a track.

    Posting an event causes the system to present a notice telling your users about the event.

    In our current API, we only let you post events for media playback experiences.

    You get this for free if you use an AVPlayer or use an AVDelegating PlaybackCoordinator.

    However, if you are not using either of these, your app can still post events using the framework.

    To learn more about providing your own custom experience and about posting events, I would recommend you watch this WWDC session.

    So to wrap up, Group Activities is a brand new Swift-native framework that allows you to create shared experiences over FaceTime.

    The framework is cross-platform and is available on iOS, macOS, iPadOS, and tvOS.

    It has tight integration with AVFoundation that allows your app to provide shared media playback experiences.

    And finally, it also has support for playback syncing over the web on macOS.

    And with that, I would like to thank you for watching our session.

    And have a wonderful WWDC21! ?

Developer Footer

  • Videos
  • WWDC21
  • Meet Group Activities
  • 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
    654-2是什么药 为什么一直想睡觉 N医学上是什么意思 五谷杂粮是什么 历法是什么意思
    一月底是什么星座 内径是什么意思 唐筛是检查什么 老什么什么什么 con是什么
    胎盘埋在什么地方最好 头热是什么原因 为什么白带是黄色的 c反应蛋白是什么意思 两榜进士是什么意思
    梦见弟弟是什么意思 应接不暇的暇是什么意思 三聚磷酸钠是什么 紫藤花什么时候开 四月八日是什么星座
    平躺头晕是什么原因hcv9jop8ns0r.cn 冰山一角是什么生肖hcv7jop6ns1r.cn 看日历是什么生肖hcv9jop7ns2r.cn 吃凉的胃疼吃什么药hcv8jop7ns3r.cn 心肝血虚吃什么中成药hcv9jop0ns4r.cn
    冰晶是什么chuanglingweilai.com 四叶草是什么牌子hcv9jop8ns1r.cn 2009年五行属什么hcv9jop5ns3r.cn 神经性呕吐是什么症状hcv9jop3ns6r.cn 自由基是什么意思hcv7jop9ns3r.cn
    月经量多吃什么药调理hcv8jop8ns9r.cn 夜尿多是什么原因hcv7jop5ns1r.cn 舌头有裂纹是什么原因hcv8jop2ns1r.cn ur是什么缩写hcv8jop1ns7r.cn 小三阳吃什么食物好得快1949doufunao.com
    结婚9年是什么婚hcv9jop4ns8r.cn 总胆红素是什么xinmaowt.com 硬结灶是什么意思hcv8jop7ns2r.cn 乳晕是什么beikeqingting.com 什么是黄疸hcv9jop0ns1r.cn
    百度