鱼C论坛

 找回密码
 立即注册
查看: 873|回复: 2

[已解决]1个html-java播放器能显示字幕,同一页2个以上,就只有1个显示字幕。哪有问题呢?

[复制链接]
发表于 2023-2-18 11:06:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 blackantt 于 2023-2-18 11:10 编辑
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  4. <title>Pinyin story</title>
  5. <meta name="keywords" content="">
  6. <meta name="description" content="">
  7. <meta name="applicable-device" content="pc">
  8. <meta http-equiv="Cache-Control" content="no-transform">

  9. <link rel="stylesheet" type="text/css" href="a1.css">
  10. </head>
  11. <body style="padding: 0px;">

  12. <p>----------------------------------------------------------------------------                          1            ---------------------------------</p>

  13. <div id="html5"><h2>You Browser </h2></div>
  14. <audio id="audio"  preload="auto" controls  style="display:block;margin:auto; text-align: center">
  15. <source src="test1.mp3" type="audio/mpeg">
  16. <track id="trk" kind="subtitles" srclang="en" src="test1.vtt" default  />
  17. </audio>

  18. <br/><div id="lyrics"></div><br/>
  19. <script type="text/javascript">
  20. //<![CDATA[

  21. var lyrics = document.getElementById('lyrics');
  22. var audio = document.getElementById('audio');
  23. var track = document.getElementById('trk');
  24. var textTrack = track.track;
  25. //track.addEventListener("cuechange", cueChange, false);   // oncuechange
  26. var nIntervId=window.setInterval(function(){cueChange()},500);

  27. function init(){audio.volume = .3;cueChange();}
  28. function cueChange(){
  29.   var cues = textTrack.activeCues;
  30.   if (cues.length > 0){
  31.     lyrics.innerHTML = cues[0].text.replace(/\n/g, '<br>');
  32.   }
  33. }
  34. window.onload = init;
  35. //]]>
  36. </script>
  37.           
  38. <p>---------------------------------------------------------------------------- 2    ---------------------------------</p>
  39. <div id="html5"><h2>You Browser</h2></div>
  40. <audio id="audio"  preload="auto" controls  style="display:block;margin:auto; text-align: center">
  41. <source src="test1.mp3" type="audio/mpeg">
  42. <track id="trk" kind="subtitles" srclang="en" src="test1.vtt" default  />
  43. </audio>

  44. <br/><div id="lyrics"></div><br/>
  45. <script type="text/javascript">
  46. //<![CDATA[

  47. var lyrics = document.getElementById('lyrics');
  48. var audio = document.getElementById('audio');
  49. var track = document.getElementById('trk');
  50. var textTrack = track.track;
  51. //track.addEventListener("cuechange", cueChange, false);   // oncuechange
  52. var nIntervId=window.setInterval(function(){cueChange()},500);

  53. function init(){audio.volume = .3;cueChange();}
  54. function cueChange(){
  55.   var cues = textTrack.activeCues;
  56.   if (cues.length > 0){
  57.     lyrics.innerHTML = cues[0].text.replace(/\n/g, '<br>');
  58.   }
  59. }
  60. window.onload = init;
  61. //]]>
  62. </script>
  63.           

  64.           
  65.           
  66. </body>

  67. </html>
复制代码
最佳答案
2023-2-18 11:26:53
本帖最后由 isdkz 于 2023-2-18 11:34 编辑

不同元素不要用同一个 id,还有处理不同元素的 script 标签的变量名和方法名最好也不要相同,

代码修改如下:改了 id 和 变量名、方法名,分别加上了 1 和 2
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

  4. <title>Pinyin story</title>
  5. <meta name="keywords" content="">
  6. <meta name="description" content="">
  7. <meta name="applicable-device" content="pc">
  8. <meta http-equiv="Cache-Control" content="no-transform">

  9. <link rel="stylesheet" type="text/css" href="a1.css">

  10.        
  11.        

  12. </head>
  13. <body style="padding: 0px;">

  14. <p>----------------------------------------------------------------------------                          1            ---------------------------------</p>
  15.   

  16. <div id="html5"><h2>You Browser Does not support Audio Captions<br/>You will not see the lyrics.</h2></div>



  17. <audio id="audio1"  preload="auto" controls  style="display:block;margin:auto; text-align: center">
  18. <source src="test1.mp3" type="audio/mpeg">
  19. <track id="trk1" kind="subtitles" srclang="en" src="test1.vtt" default  />
  20. </audio>

  21. <br/><div id="lyrics1"></div><br/>


  22. <script type="text/javascript">
  23. //<![CDATA[

  24. var lyrics1 = document.getElementById('lyrics1');
  25. var audio1 = document.getElementById('audio1');
  26. var track1 = document.getElementById('trk1');
  27. var textTrack1 = track1.track;
  28. //track.addEventListener("cuechange", cueChange, false);   // oncuechange
  29. var nIntervId1=window.setInterval(function(){cueChange1()},500);

  30. function init1(){audio1.volume = .3;cueChange1();}
  31. function cueChange1(){
  32.   var cues1 = textTrack1.activeCues;
  33.   if (cues1.length > 0){
  34.     lyrics1.innerHTML = cues1[0].text.replace(/\n/g, '<br>');
  35.   }
  36. }
  37. init1();
  38. //]]>
  39. </script>
  40.           
  41. <p>---------------------------------------------------------------------------- 2    ---------------------------------</p>
  42. <div id="html5"><h2>You Browser Does not support Audio Captions<br/>You will not see the lyrics.</h2></div>



  43. <audio id="audio2"  preload="auto" controls  style="display:block;margin:auto; text-align: center">
  44. <source src="test1.mp3" type="audio/mpeg">
  45. <track id="trk2" kind="subtitles" srclang="en" src="test1.vtt" default  />
  46. </audio>

  47. <br/><div id="lyrics2"></div><br/>


  48. <script type="text/javascript">
  49. //<![CDATA[

  50. var lyrics2 = document.getElementById('lyrics2');
  51. var audio2 = document.getElementById('audio2');
  52. var track2 = document.getElementById('trk2');
  53. var textTrack2 = track2.track;
  54. //track.addEventListener("cuechange", cueChange, false);   // oncuechange
  55. var nIntervId2=window.setInterval(function(){cueChange2()},500);

  56. function init2(){audio2.volume = .3;cueChange2();}
  57. function cueChange2(){
  58.   var cues2 = textTrack2.activeCues;
  59.   if (cues2.length > 0){
  60.     lyrics2.innerHTML = cues2[0].text.replace(/\n/g, '<br>');
  61.   }
  62. }
  63. init2();
  64. //]]>
  65. </script>
  66.           

  67.           
  68.           
  69. </body>

  70. </html>

复制代码

0000000000.zip

219.58 KB, 下载次数: 2

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-2-18 11:26:53 | 显示全部楼层    本楼为最佳答案   
本帖最后由 isdkz 于 2023-2-18 11:34 编辑

不同元素不要用同一个 id,还有处理不同元素的 script 标签的变量名和方法名最好也不要相同,

代码修改如下:改了 id 和 变量名、方法名,分别加上了 1 和 2
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

  4. <title>Pinyin story</title>
  5. <meta name="keywords" content="">
  6. <meta name="description" content="">
  7. <meta name="applicable-device" content="pc">
  8. <meta http-equiv="Cache-Control" content="no-transform">

  9. <link rel="stylesheet" type="text/css" href="a1.css">

  10.        
  11.        

  12. </head>
  13. <body style="padding: 0px;">

  14. <p>----------------------------------------------------------------------------                          1            ---------------------------------</p>
  15.   

  16. <div id="html5"><h2>You Browser Does not support Audio Captions<br/>You will not see the lyrics.</h2></div>



  17. <audio id="audio1"  preload="auto" controls  style="display:block;margin:auto; text-align: center">
  18. <source src="test1.mp3" type="audio/mpeg">
  19. <track id="trk1" kind="subtitles" srclang="en" src="test1.vtt" default  />
  20. </audio>

  21. <br/><div id="lyrics1"></div><br/>


  22. <script type="text/javascript">
  23. //<![CDATA[

  24. var lyrics1 = document.getElementById('lyrics1');
  25. var audio1 = document.getElementById('audio1');
  26. var track1 = document.getElementById('trk1');
  27. var textTrack1 = track1.track;
  28. //track.addEventListener("cuechange", cueChange, false);   // oncuechange
  29. var nIntervId1=window.setInterval(function(){cueChange1()},500);

  30. function init1(){audio1.volume = .3;cueChange1();}
  31. function cueChange1(){
  32.   var cues1 = textTrack1.activeCues;
  33.   if (cues1.length > 0){
  34.     lyrics1.innerHTML = cues1[0].text.replace(/\n/g, '<br>');
  35.   }
  36. }
  37. init1();
  38. //]]>
  39. </script>
  40.           
  41. <p>---------------------------------------------------------------------------- 2    ---------------------------------</p>
  42. <div id="html5"><h2>You Browser Does not support Audio Captions<br/>You will not see the lyrics.</h2></div>



  43. <audio id="audio2"  preload="auto" controls  style="display:block;margin:auto; text-align: center">
  44. <source src="test1.mp3" type="audio/mpeg">
  45. <track id="trk2" kind="subtitles" srclang="en" src="test1.vtt" default  />
  46. </audio>

  47. <br/><div id="lyrics2"></div><br/>


  48. <script type="text/javascript">
  49. //<![CDATA[

  50. var lyrics2 = document.getElementById('lyrics2');
  51. var audio2 = document.getElementById('audio2');
  52. var track2 = document.getElementById('trk2');
  53. var textTrack2 = track2.track;
  54. //track.addEventListener("cuechange", cueChange, false);   // oncuechange
  55. var nIntervId2=window.setInterval(function(){cueChange2()},500);

  56. function init2(){audio2.volume = .3;cueChange2();}
  57. function cueChange2(){
  58.   var cues2 = textTrack2.activeCues;
  59.   if (cues2.length > 0){
  60.     lyrics2.innerHTML = cues2[0].text.replace(/\n/g, '<br>');
  61.   }
  62. }
  63. init2();
  64. //]]>
  65. </script>
  66.           

  67.           
  68.           
  69. </body>

  70. </html>

复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-18 11:37:57 | 显示全部楼层
isdkz 发表于 2023-2-18 11:26
不同元素不要用同一个 id,还有处理不同元素的 script 标签的变量名和方法名最好也不要相同,

代码修改 ...

感谢,我原来反复改了半天。可能还是有一个地方没改到。结果就不行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 09:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表