स्पेस ऑडियो की सुविधाएं देखना

जब उपयोगकर्ता आपके ऐप्लिकेशन या सिस्टम के साथ इंटरैक्ट करते हैं, तो स्पेस की सुविधाओं में बदलाव हो सकता है. इसके अलावा, आपका ऐप्लिकेशन भी इन सुविधाओं में बदलाव कर सकता है. उदाहरण के लिए, होम स्पेस या फ़ुल स्पेस पर स्विच करना. समस्याओं से बचने के लिए, आपके ऐप्लिकेशन को स्पेस की सुविधाओं की जांच करनी होगी, ताकि यह पता लगाया जा सके कि मौजूदा एनवायरमेंट में कौनसे एपीआई काम करते हैं.

XR के लिए Jetpack Compose का इस्तेमाल करके, स्पेस ऑडियो की सुविधाओं की जांच करना

XR के लिए Jetpack Compose, स्पेस की जानकारी देने वाली सुविधाओं की जांच करने के लिए एक कॉम्पोज़िशन लोकल बनाता है. इसका इस्तेमाल करके देखें कि स्पेस ऑडियो, स्पेस यूज़र इंटरफ़ेस (यूआई), एनवायरमेंट, पासथ्रू या 3D कॉन्टेंट की सुविधा चालू है या नहीं.

LocalSpatialCapabilities.current का इस्तेमाल करके, यह देखा जा सकता है कि स्पेशल ऑडियो की ये सुविधाएं फ़िलहाल उपलब्ध हैं या नहीं:

  • isSpatialUiEnabled: इससे पता चलता है कि ऐप्लिकेशन, स्पेस वाले यूज़र इंटरफ़ेस (यूआई) एलिमेंट (उदाहरण के लिए, SpatialPanel) बना सकता है या नहीं.
  • isContent3dEnabled: इससे पता चलता है कि ऐप्लिकेशन 3D ऑब्जेक्ट बना सकता है या नहीं.
  • isAppEnvironmentEnabled: इससे पता चलता है कि ऐप्लिकेशन, एनवायरमेंट सेट कर सकता है या नहीं.
  • isPassthroughControlEnabled: इससे पता चलता है कि ऐप्लिकेशन, पासथ्रू की स्थिति को कंट्रोल कर सकता है या नहीं.
  • isSpatialAudioEnabled: इससे पता चलता है कि ऐप्लिकेशन में स्पेशल ऑडियो की सुविधा इस्तेमाल की जा सकती है या नहीं.

इस उदाहरण में, यह देखने का तरीका बताया गया है कि स्पेसिएल यूज़र इंटरफ़ेस (यूआई) चालू है या नहीं.

if (LocalSpatialCapabilities.current.isSpatialUiEnabled) {
    Subspace {
        SpatialPanel(
            modifier = SubspaceModifier
                .width(1488.dp)
                .fillMaxHeight()
        ) {
            AppContent()
        }
    }
} else {
    AppContent()
}

SceneCore का इस्तेमाल करके, स्पेस की जानकारी देने वाली सुविधाओं की जांच करना

SceneCore लाइब्रेरी का इस्तेमाल करते समय, आपको एक सेशन बनाना होगा. सेशन बनाने के बाद, सेशन पर getSpatialCapabilities कॉल करें. इससे आपको यह पता चलेगा कि फ़िलहाल स्पेस में कौनसी सुविधाएं उपलब्ध हैं.

  • SPATIAL_CAPABILITY_3D_CONTENT: इस गतिविधि से 3D कॉन्टेंट बनाया जा सकता है.
  • SPATIAL_CAPABILITY_APP_ENVIRONMENT: गतिविधि अपने लिए एनवायरमेंट सेट कर सकती है.
  • SPATIAL_CAPABILITY_EMBED_ACTIVITY: इस गतिविधि में, किसी दूसरी गतिविधि को स्पेस में एम्बेड किया जा सकता है.
  • SPATIAL_CAPABILITY_PASSTHROUGH_CONTROL: इस गतिविधि से, पासथ्रू को चालू या बंद किया जा सकता है.
  • SPATIAL_CAPABILITY_SPATIAL_AUDIO: गतिविधि में स्पेशल ऑडियो का इस्तेमाल किया जा सकता है.
  • SPATIAL_CAPABILITY_UI: गतिविधि अपने-आप स्पेस में दिख सकती है. जैसे, स्पेस पैनल जोड़ना.

आपके पास कॉलबैक की सदस्यता लेने का विकल्प भी है. addSpatialCapabilitiesChangedListener इससे आपको स्पेस ऑडियो की सुविधाओं में बदलाव होने पर सूचना मिलेगी.

val xrSession = Session.create(this)

// Example 1: check if enabling passthrough mode is allowed
if (xrSession.getSpatialCapabilities().hasCapability(
       SpatialCapabilities.SPATIAL_CAPABILITY_PASSTHROUGH_CONTROL)) {
   xrSession.spatialEnvironment.setPassthroughOpacityPreference(0f)
}
// Example 2: Multiple capability flags can be checked simultaneously:
if (xrSession.getSpatialCapabilities().hasCapability(
       SpatialCapabilities.SPATIAL_CAPABILITY_PASSTHROUGH_CONTROL and
               SpatialCapabilities.SPATIAL_CAPABILITY_3D_CONTENT)) {
   // ...
}

// Example 3: Create a spatialized panel if/when spatialization UI becomes available
xrSession.addSpatialCapabilitiesChangedListener((capabilities) -> {
  if (capabilities.hasCapability(SpatialCapabilities.SPATIAL_CAPABILITY_UI)){
Subspace{
   SpatialPanel(...)
      }
   }
});

यह भी देखें: