If one semiconductor is transparent and another is not (in the visible spectrum), what causes that difference? Is it related to their band gap, because that influences which wavelengths they can emit? As an example gallium arsenide is opaque, zinc sulphide isn't.
Yes, you are right! The difference is usually the width of the energy band gap $E$. If the photon energy $E_P=\hbar \omega$ and thus frequency becomes larger than the band gap, photon absorption increases strongly. Common semiconductors, like silicon, germanium or Gallium Arsenide are largely opaque to visible light because of their small band gaps of 0.66eV, 1.12eV and 1.43eV, which correspond to light frequencies in the infrared region. Zinc sulfide is transparent to visible light because it has a band gap of 3.54eV which starts absorbing in the near ultraviolett region.