# Player

Sunbird [inQuiry Player](/learn/product-and-developer-guide/question-set-player/architecture.md) is used for consuming the question set. The current player supports the following question types,

* Multiple Choice Question (MCQ)
* Multi-select Multiple Choice Question (MMCQ)
* Subjective Question (SA)

This Player is also known as Question Set Player or QuML Player.

## Question Set Player (QuML Player)

Question set player is a player provided by inQuiry to create engaging & inclusive experiences for end users consuming the question sets.

More details on the player can be found [here](/learn/capabilities-1.md#d-question-set-player-quml-player) and [here](/learn/product-and-developer-guide/question-set-player.md).

Player architecture is as below,

<figure><img src="/files/eq9VCbJJyE06zOHWwmBg" alt=""><figcaption></figcaption></figure>

Player Module is as detailed below,

<figure><img src="/files/6bbidP6XOYVd9juj9prh" alt=""><figcaption></figcaption></figure>

<details>

<summary>Additional details about the internals of the Player</summary>

* Player Module - Root module of the player library where all the components and services are imported
* Player Component - Base component of the Editor which consists of the sub components
  * Section Component - Handles different types of questions by using its sub components
    * Start Page Component - Provide instructions for exams
    * MCQ Component - for rendering multiple choice questions.
    * SA Component - for rendering short answer questions (subjective)
    * Alert Component - Showing feedback or solutions
  * End Page Component - Summary of exam
* Viewer Service - service layer that makes the API calls related to Player. For eg:- question list
* Telemetry Service - initialise the Telemetry SDK and prepare the telemetry events
  * Telemetry SDK - to sent out the telemetry events to external Telemetry Service

</details>

#### Question / QuestionSet Consumption flow

<figure><img src="/files/3fzdBSQDEn2yiB7PWPa2" alt=""><figcaption><p>User attempting questions</p></figcaption></figure>

#### Code Structure

* [Repository](/learn/product-and-developer-guide/question-set-player/source-code.md)
* Important Folder / Package structure

  ```
  - projects
  	- quml-demo-app [Sample application for library]
  	- quml-library [Contains library components and service]
  	- quml-player-wc [Application to generate web component]
  - web-component-examples [Contains sample projects]
  - web-component [Contains generated web component files]
  ```

#### Dependencies

Details are listed [here](https://inquiry.sunbird.org/use/learn-more/dependencies) for the below specified dependencies

* [Sunbird QuML Specification](https://quml.sunbird.org/)
* [Sunbird inQuiry Service](/learn/product-and-developer-guide/quick-starter-guide/inquiry-components/inquiry-service.md)&#x20;
* Sunbird Telemetry

## APIs used by Player

APIs invoked from Player component is listed [here](/learn/product-and-developer-guide/question-set-player/apis.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://inquiry.sunbird.org/learn/product-and-developer-guide/quick-starter-guide/inquiry-components/player.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
