# 创建AVSession出错，错误码6600101

#### 问题现象

在销毁上一次成功创建的AVSession后创建新的AVSession时，偶尔会出现新AVSession创建失败。报错信息为：CreateSession failed，错误码为6600101。

#### 背景知识

AVSession是系统提供的音视频管控服务，用于统一管理系统中所有音视频行为，构建音视频统一展示和控制能力。

#### 问题定位

1.  根据问题现象中的场景和错误码，确定是创建AVSession时出错，原因是会话服务端异常。
2.  参考createAVSession（创建AVSession），一个Ability只能存在一个AVSession，重复创建会失败，错误码为6600101。推测是重复创建导致错误。
3.  在确保当前AVSession销毁完毕后再创建新的AVSession，创建AVSession成功。
4.  确定是重复创建AVSession导致错误。

#### 分析结论

一个Ability中只能存在一个AVSession，重复创建会失败。在创建AVSession时，必须确保此时Ability内没有已创建的AVSession存在。

#### 修改建议

销毁媒体会话的destroy是异步接口，需要确保销毁流程完毕后，才能创建新的AVSession。

```
import { avSession } from '@kit.AVSessionKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { common } from '@kit.AbilityKit';

@Entry
@Component
struct Index {
  private session?: avSession.AVSession = undefined;

  build() {
    Column() {
      Button('Create Session')
        .onClick(async () => {
          let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
          if (this.session !== undefined) {
            this.session.destroy()
              .then(async () => {
                try {
                  this.session = await avSession.createAVSession(context, 'SESSION_NAME', 'audio');
                  console.info(`create session successfully`);
                } catch (err) {
                  console.error(`failed to create session, error=${JSON.stringify(err)}`);
                }
              })
              .catch((err: BusinessError) => {
                console.error(`failed to destroy session, error=${JSON.stringify(err)}`);
              });
          } else {
            try {
              this.session = await avSession.createAVSession(context, 'SESSION_NAME', 'audio');
            } catch (err) {
              console.error(`failed to create session, error=${JSON.stringify(err)}`);
            }
          }
        });
    }
    .width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center)
    .alignItems(HorizontalAlign.Center);
  }
}
```