Просмотр исходного кода

学生考场主屏显示乐器拜访图

Steven 5 лет назад
Родитель
Сommit
26f120cb57
76 измененных файлов с 587 добавлено и 15 удалено
  1. 6 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/Contents.json
  2. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_Drum.imageset/Contents.json
  3. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_Drum.imageset/image_Drum@2x.png
  4. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_Drum.imageset/image_Drum@3x.png
  5. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_Zheng.imageset/Contents.json
  6. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_Zheng.imageset/image_Zheng@2x.png
  7. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_Zheng.imageset/image_Zheng@3x.png
  8. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_clarinet.imageset/Contents.json
  9. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_clarinet.imageset/image_clarinet@2x.png
  10. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_clarinet.imageset/image_clarinet@3x.png
  11. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_contrabass.imageset/Contents.json
  12. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_contrabass.imageset/image_contrabass@2x.png
  13. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_contrabass.imageset/image_contrabass@3x.png
  14. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_dulcimer.imageset/Contents.json
  15. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_dulcimer.imageset/image_dulcimer@2x.png
  16. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_dulcimer.imageset/image_dulcimer@3x.png
  17. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_flute.imageset/Contents.json
  18. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_flute.imageset/image_flute@2x.png
  19. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_flute.imageset/image_flute@3x.png
  20. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_piano.imageset/Contents.json
  21. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_piano.imageset/image_piano@2x.png
  22. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_piano.imageset/image_piano@3x.png
  23. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_sax.imageset/Contents.json
  24. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_sax.imageset/image_sax@2x.png
  25. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_sax.imageset/image_sax@3x.png
  26. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_sideDrum.imageset/Contents.json
  27. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_sideDrum.imageset/image_sideDrum@2x.png
  28. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_sideDrum.imageset/image_sideDrum@3x.png
  29. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_trombone.imageset/Contents.json
  30. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_trombone.imageset/image_trombone@2x.png
  31. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_trombone.imageset/image_trombone@3x.png
  32. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_tuba.imageset/Contents.json
  33. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_tuba.imageset/image_tuba@2x.png
  34. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_tuba.imageset/image_tuba@3x.png
  35. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_violin.imageset/Contents.json
  36. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_violin.imageset/image_violin@2x.png
  37. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_violin.imageset/image_violin@3x.png
  38. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_violoncello.imageset/Contents.json
  39. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_violoncello.imageset/image_violoncello@2x.png
  40. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_violoncello.imageset/image_violoncello@3x.png
  41. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ Drum.imageset/Contents.json
  42. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ Drum.imageset/image_ Drum@2x.png
  43. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ Drum.imageset/image_ Drum@3x.png
  44. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ Zheng.imageset/Contents.json
  45. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ Zheng.imageset/image_ Zheng@2x.png
  46. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ Zheng.imageset/image_ Zheng@3x.png
  47. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ contrabass.imageset/Contents.json
  48. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ contrabass.imageset/image_ contrabass@2x.png
  49. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ contrabass.imageset/image_ contrabass@3x.png
  50. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ trombone.imageset/Contents.json
  51. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ trombone.imageset/image_ trombone@2x.png
  52. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ trombone.imageset/image_ trombone@3x.png
  53. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ violoncello.imageset/Contents.json
  54. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ violoncello.imageset/image_ violoncello@2x.png
  55. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ violoncello.imageset/image_ violoncello@3x.png
  56. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_dulcimer.imageset/Contents.json
  57. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_dulcimer.imageset/image_dulcimer@2x.png
  58. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_dulcimer.imageset/image_dulcimer@3x.png
  59. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_piano.imageset/Contents.json
  60. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_piano.imageset/image_piano@2x.png
  61. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_piano.imageset/image_piano@3x.png
  62. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_sax.imageset/Contents.json
  63. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_sax.imageset/image_sax@2x.png
  64. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_sax.imageset/image_sax@3x.png
  65. 22 0
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_sideDrum.imageset/Contents.json
  66. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_sideDrum.imageset/image_sideDrum@2x.png
  67. BIN
      MusicGradeExam/MusicGradeExam/Assets.xcassets/image_sideDrum.imageset/image_sideDrum@3x.png
  68. 1 1
      MusicGradeExam/MusicGradeExam/Manager/OnlineRoomManager.h
  69. 5 1
      MusicGradeExam/MusicGradeExam/Manager/OnlineRoomManager.m
  70. 2 0
      MusicGradeExam/MusicGradeExam/UI/Classroom/Controller/ClassroomViewController.h
  71. 1 0
      MusicGradeExam/MusicGradeExam/UI/Classroom/Controller/ClassroomViewController.m
  72. 1 0
      MusicGradeExam/MusicGradeExam/UI/Classroom/View/MainContainer/ClassroomMainContainer.h
  73. 75 1
      MusicGradeExam/MusicGradeExam/UI/Classroom/View/MainContainer/ClassroomMainContainer.m
  74. 11 3
      MusicGradeExam/MusicGradeExam/UI/Exam/Controller/WaitExamViewController.m
  75. 1 1
      MusicGradeExam/MusicGradeExam/UI/Exam/View/WaitExamBottomView.m
  76. 0 8
      MusicGradeExam/MusicGradeExam/酷乐秀Release.entitlements

+ 6 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_Drum.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_Drum@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_Drum@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_Drum.imageset/image_Drum@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_Drum.imageset/image_Drum@3x.png


+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_Zheng.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_Zheng@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_Zheng@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_Zheng.imageset/image_Zheng@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_Zheng.imageset/image_Zheng@3x.png


+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_clarinet.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_clarinet@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_clarinet@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_clarinet.imageset/image_clarinet@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_clarinet.imageset/image_clarinet@3x.png


+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_contrabass.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_contrabass@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_contrabass@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_contrabass.imageset/image_contrabass@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_contrabass.imageset/image_contrabass@3x.png


+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_dulcimer.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_dulcimer@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_dulcimer@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_dulcimer.imageset/image_dulcimer@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_dulcimer.imageset/image_dulcimer@3x.png


+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_flute.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_flute@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_flute@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_flute.imageset/image_flute@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_flute.imageset/image_flute@3x.png


+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_piano.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_piano@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_piano@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_piano.imageset/image_piano@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_piano.imageset/image_piano@3x.png


+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_sax.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_sax@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_sax@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_sax.imageset/image_sax@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_sax.imageset/image_sax@3x.png


+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_sideDrum.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_sideDrum@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_sideDrum@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_sideDrum.imageset/image_sideDrum@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_sideDrum.imageset/image_sideDrum@3x.png


+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_trombone.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_trombone@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_trombone@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_trombone.imageset/image_trombone@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_trombone.imageset/image_trombone@3x.png


+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_tuba.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_tuba@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_tuba@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_tuba.imageset/image_tuba@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_tuba.imageset/image_tuba@3x.png


+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_violin.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_violin@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_violin@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_violin.imageset/image_violin@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_violin.imageset/image_violin@3x.png


+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_violoncello.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_violoncello@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_violoncello@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_violoncello.imageset/image_violoncello@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/MainInstruments/image_violoncello.imageset/image_violoncello@3x.png


+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ Drum.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_ Drum@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_ Drum@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ Drum.imageset/image_ Drum@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ Drum.imageset/image_ Drum@3x.png


+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ Zheng.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_ Zheng@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_ Zheng@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ Zheng.imageset/image_ Zheng@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ Zheng.imageset/image_ Zheng@3x.png


+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ contrabass.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_ contrabass@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_ contrabass@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ contrabass.imageset/image_ contrabass@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ contrabass.imageset/image_ contrabass@3x.png


+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ trombone.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_ trombone@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_ trombone@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ trombone.imageset/image_ trombone@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ trombone.imageset/image_ trombone@3x.png


+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ violoncello.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_ violoncello@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_ violoncello@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ violoncello.imageset/image_ violoncello@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_ violoncello.imageset/image_ violoncello@3x.png


+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_dulcimer.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_dulcimer@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_dulcimer@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_dulcimer.imageset/image_dulcimer@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_dulcimer.imageset/image_dulcimer@3x.png


+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_piano.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_piano@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_piano@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_piano.imageset/image_piano@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_piano.imageset/image_piano@3x.png


+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_sax.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_sax@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_sax@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_sax.imageset/image_sax@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_sax.imageset/image_sax@3x.png


+ 22 - 0
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_sideDrum.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "image_sideDrum@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "image_sideDrum@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_sideDrum.imageset/image_sideDrum@2x.png


BIN
MusicGradeExam/MusicGradeExam/Assets.xcassets/image_sideDrum.imageset/image_sideDrum@3x.png


+ 1 - 1
MusicGradeExam/MusicGradeExam/Manager/OnlineRoomManager.h

@@ -13,7 +13,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface OnlineRoomManager : NSObject
 
-- (void)joinRoomWithId:(NSString *)roomId inViewController:(KSBaseViewController *)ctrl;
+- (void)joinRoomWithId:(NSString *)roomId subjectName:(NSString *)subjectName inViewController:(KSBaseViewController *)ctrl;
 
 @end
 

+ 5 - 1
MusicGradeExam/MusicGradeExam/Manager/OnlineRoomManager.m

@@ -23,6 +23,8 @@
 // 防止循环引用
 @property (nonatomic, weak) KSBaseViewController *baseCtrl;
 
+@property (nonatomic, strong) NSString *subjectName;
+
 @end
 
 @implementation OnlineRoomManager
@@ -36,9 +38,10 @@
     return self;
 }
 
-- (void)joinRoomWithId:(NSString *)roomId inViewController:(KSBaseViewController *)ctrl {
+- (void)joinRoomWithId:(NSString *)roomId subjectName:(NSString *)subjectName inViewController:(KSBaseViewController *)ctrl {
     self.roomId = roomId;
     self.baseCtrl = ctrl;
+    self.subjectName = subjectName;
     [self joinRoom];
 }
 
@@ -86,6 +89,7 @@
     [RCConnectionManager shareManager].isNeedJoin = NO;
     ClassroomViewController *vc = [[ClassroomViewController alloc] init];
     vc.registrationId = self.roomId;
+    vc.subjectName = self.subjectName;
     vc.modalPresentationStyle = UIModalPresentationFullScreen;
     [self.baseCtrl presentViewController:vc animated:YES completion:nil];
 }

+ 2 - 0
MusicGradeExam/MusicGradeExam/UI/Classroom/Controller/ClassroomViewController.h

@@ -14,6 +14,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 @property (nonatomic, strong) NSString *registrationId;
 
+@property (nonatomic, strong) NSString *subjectName;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 1 - 0
MusicGradeExam/MusicGradeExam/UI/Classroom/Controller/ClassroomViewController.m

@@ -690,6 +690,7 @@ typedef NS_ENUM(NSInteger, KICKTYPE) {
 - (ClassroomMainContainer *)containerView {
     if (!_containerView) {
         _containerView = [[ClassroomMainContainer alloc] initWithFrame:[self mainContainerViewFrame]];
+        _containerView.subjectName = self.subjectName;
     }
     return _containerView;
 }

+ 1 - 0
MusicGradeExam/MusicGradeExam/UI/Classroom/View/MainContainer/ClassroomMainContainer.h

@@ -24,6 +24,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 @property (nonatomic, strong) RoomMember *member;
 
+@property (nonatomic, strong) NSString *subjectName;
 
 @property (nonatomic, assign, readonly) BOOL isFullScreen;
 

+ 75 - 1
MusicGradeExam/MusicGradeExam/UI/Classroom/View/MainContainer/ClassroomMainContainer.m

@@ -16,6 +16,8 @@
 @property (nonatomic) CGRect currentVideoFrame;
 @property (nonatomic) CGRect originVideoFrame;
 
+
+@property (nonatomic, strong) UIImageView *tipsImage;
 @end
 
 @implementation ClassroomMainContainer
@@ -29,11 +31,11 @@
         [self.videoBackView addSubview:self.videoView];
         self.originVideoFrame = self.videoBackView.frame;
         self.currentVideoFrame = self.originVideoFrame;
+        [self.videoView addSubview:self.tipsImage];
     }
     return self;
 }
 
-
 - (void)didChangeRole:(Role)role {
     [self.emptyView changeRole:role];
 }
@@ -61,6 +63,17 @@
     self.videoBackView.hidden = YES;
 }
 
+- (void)setSubjectName:(NSString *)subjectName {
+    _subjectName = subjectName;
+    NSString *imgName = [self getGuideImage:subjectName];
+    if (![NSString isEmptyString:imgName]) {
+       self.tipsImage.hidden = NO;
+        [self.tipsImage setImage:[UIImage imageNamed:imgName]];
+    }
+    else {
+        self.tipsImage.hidden = YES;
+    }
+}
 
 #pragma mark - private method
 
@@ -136,6 +149,67 @@
     return _emptyView;
 }
 
+- (UIImageView *)tipsImage {
+    if (!_tipsImage) {
+        CGFloat width = 0.0f;
+        CGFloat height = 0.0f;
+        height = kScreenHeight - 20;
+        width = height / 3.0f * 4;
+        if (width > kScreenWidth - 180) {
+            width = kScreenWidth - 180;
+            height = width / 4.0f * 3;
+        }
+        _tipsImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, width, height)];
+    }
+    return _tipsImage;
+}
+
+#pragma mark ----- 获取引导图
+- (NSString *)getGuideImage:(NSString *)subjectName {
+    if ([subjectName isEqualToString:@"钢琴"]) {
+        return @"image_piano";
+    }
+    else if ([subjectName isEqualToString:@"萨克斯"]) {
+        return @"image_sax";
+    }
+    else if ([subjectName isEqualToString:@"长号"]) {
+        return @"image_trombone";
+    }
+    else if ([subjectName isEqualToString:@"古筝"]) {
+        return @"image_Zheng";
+    }
+    else if ([subjectName isEqualToString:@"低音提琴"]) {
+        return @"image_contrabass";
+    }
+    else if ([subjectName isEqualToString:@"小鼓"]) {
+        return @"image_sideDrum";
+    }
+    else if ([subjectName isEqualToString:@"架子鼓"]) {
+        return @"image_Drum";
+    }
+    else if ([subjectName isEqualToString:@"扬琴"]) {
+        return @"image_dulcimer";
+    }
+    else if ([subjectName isEqualToString:@"大提琴"]) {
+        return @"image_violoncello";
+    }
+    else if ([subjectName isEqualToString:@"单簧管"] || [subjectName isEqualToString:@"双簧管"]) {
+        return @"image_clarinet";
+    }
+    else if ([subjectName isEqualToString:@"小提琴"] || [subjectName isEqualToString:@"中提琴"]) {
+        return @"image_violin";
+    }
+    else if ([subjectName isEqualToString:@"长笛"] || [subjectName isEqualToString:@"大管"] || [subjectName isEqualToString:@"小号"] || [subjectName isEqualToString:@"笙"] || [subjectName isEqualToString:@"笛子"]) {
+        return @"image_flute";
+    }
+    else if ([subjectName isEqualToString:@"圆号"] || [subjectName isEqualToString:@"大号"] || [subjectName isEqualToString:@"上低音号"] || [subjectName isEqualToString:@"手风琴"] || [subjectName isEqualToString:@"古典吉他"] || [subjectName isEqualToString:@"中阮"] || [subjectName isEqualToString:@"琵琶"] || [subjectName isEqualToString:@"二胡"]) {
+        return @"image_tuba";
+    }
+    else {
+        return @"";
+    }
+}
+
 /*
 // Only override drawRect: if you perform custom drawing.
 // An empty implementation adversely affects performance during animation.

+ 11 - 3
MusicGradeExam/MusicGradeExam/UI/Exam/Controller/WaitExamViewController.m

@@ -68,7 +68,7 @@
     }
     else if (memberArray.count) {
         NSMutableArray *countArray = [NSMutableArray array];
-        
+        BOOL refreshCurMember = NO;
         countArray = [TicketRefreshModel mj_objectArrayWithKeyValuesArray:memberArray];
         for (NSInteger i = 0; i < countArray.count; i++) {
             TicketRefreshModel *model = countArray[i];
@@ -79,11 +79,19 @@
                 self.sourceModel.recordFlag = model.recordFlag;
                 self.sourceModel.finishedExam = model.finishedExam;
                 self.sourceModel.waitNum = i;
-                
+                refreshCurMember = YES;
                 [self evaluateSource];
                 break;
             }
         }
+        
+        // 如果列表没有当前用户,表示已完成
+        if (refreshCurMember == NO) {
+            self.sourceModel.recordFlag = 0;
+            self.sourceModel.finishedExam = 5;
+            self.sourceModel.classroomSwitch = 0;
+            [self evaluateSource];
+        }
     }
     else {
         [self requestDataWithHub:NO];
@@ -330,7 +338,7 @@
 
 #pragma mark ----- 加入房间
 - (void)joinRoomAction:(NSString *)roomId {
-    [self.classManager joinRoomWithId:roomId inViewController:self];
+    [self.classManager joinRoomWithId:roomId subjectName:self.sourceModel.subjectName inViewController:self];
 }
 
 - (OnlineRoomManager *)classManager {

+ 1 - 1
MusicGradeExam/MusicGradeExam/UI/Exam/View/WaitExamBottomView.m

@@ -86,7 +86,7 @@ typedef NS_ENUM(NSInteger, JOINBUTTONSTATUS) {
             if (self.sourceModel.classroomSwitch == 0) {
                 self.buttonStatus = JOINBUTTONSTATUS_WAIT;
                 
-                NSString *title = [NSString stringWithFormat:@"前面等待%.0f人,大约%.0f分钟",self.sourceModel.waitNum, (self.sourceModel.waitNum * self.sourceModel.recordMinutes)];
+                NSString *title = [NSString stringWithFormat:@"还需等待%.0f人,约%.0f分钟",self.sourceModel.waitNum, (self.sourceModel.waitNum * self.sourceModel.recordMinutes)];
                 if (self.sourceModel.waitNum == 0) {
                     title = @"即将开始考试,请准备";
                 }

+ 0 - 8
MusicGradeExam/MusicGradeExam/酷乐秀Release.entitlements

@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>aps-environment</key>
-	<string>development</string>
-</dict>
-</plist>