暖阳七夕 2023-05-25 16:07 采纳率: 50%
浏览 23
已结题

uniapp原生组件video播放不了抖音视频

uniapp原生组件video播放不了抖音视频

控制台没有打印报错提示,在组件返回函数提示信息:打开上下文失败

视频链接地址:https://www.iesdouyin.com/share/video/7235937155615427896/?region=CN&mid=7235937221541514021&u_code=0&titleType=title&did=MS4wLjABAAAANwkJuWIRFOzg5uCpDRpMj4OX-QryoDgn-yYlXQnRwQQ&iid=MS4wLjABAAAANwkJuWIRFOzg5uCpDRpMj4OX-QryoDgn-yYlXQnRwQQ&with_sec_did=1&from_ssr=1

请教一下,有没有实现播放抖音视频的教程,感谢!
  • 写回答

1条回答 默认 最新

  • 刘家旺1 2023-05-25 16:20
    关注

    该回答引用GPT:抖音视频是通过防盗链机制来保护视频资源的,因此直接使用视频链接地址是无法播放的。如果需要在uni-app中播放抖音视频,可以考虑使用第三方的抖音视频解析接口,将抖音视频解析成可用的视频链接地址,再使用uni-app原生组件video进行播放。

    以下是一个使用第三方抖音视频解析接口的示例代码:

    // 引入第三方抖音视频解析接口
    import douyinParser from '@/utils/douyinParser'
    
    export default {
      data() {
        return {
          videoUrl: '' // 存放解析后的视频链接地址
        }
      },
      methods: {
        // 解析抖音视频
        async parseDouyinVideo() {
          try {
            const videoInfo = await douyinParser.parse('https://www.iesdouyin.com/share/video/7235937155615427896/')
            this.videoUrl = videoInfo.videoUrl
          } catch (err) {
            console.error(err)
          }
        }
      }
    }
    

    其中,douyinParser是一个封装了抖音视频解析接口的工具类,具体实现可以参考以下代码:

    import axios from 'axios'
    
    const DOUYIN_API = 'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/'
    
    export default {
      // 解析抖音视频
      async parse(url) {
        try {
          const response = await axios.get(DOUYIN_API, {
            params: {
              url: url
            },
            headers: {
              'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299'
            }
          })
          const data = response.data
          if (data.status_code === 0) {
            const videoInfo = {
              videoUrl: data.item_list[0].video.play_addr.url_list[0]
            }
            return videoInfo
          } else {
            throw new Error('解析抖音视频失败')
          }
        } catch (err) {
          throw err
        }
      }
    }
    

    在解析成功后,将解析后的视频链接地址赋值给videoUrl,再将videoUrl传递给uni-app原生组件video进行播放即可。

    需要注意的是,由于抖音视频解析接口可能会随时变更,因此需要及时更新解析接口的代码。同时,使用第三方解析接口也存在一定的风险,需要自行评估使用风险。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月2日
  • 已采纳回答 5月25日
  • 创建了问题 5月25日

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集