zoukankan      html  css  js  c++  java
  • flask项目 玩具的语音播报

    在建立项目之前,首先我们要获取数据,

    简单写一个爬取信息的py文件。

    import requests,os
    from settings import MONGO_DB
    from settings import IMAGE_PATH
    from settings import MUSIC_PATH
    from uuid import uuid4
    
    content_url = "/ertong/424529/7713678"
    content_type = "erge"
    content_id = content_url.rsplit("/", 1)[-1]
    res = requests.get("http://m.ximalaya.com/tracks/%s.json" % (content_id))
    content_info = res.json()
    
    content_name = str(uuid4())
    content_img_path = os.path.join(IMAGE_PATH,content_name)
    content_music_path = os.path.join(MUSIC_PATH,content_name)
    
    audio = requests.get(content_info.get("play_path"))
    with open("{}.mp3".format(content_music_path), "wb") as f:
        f.write(audio.content)
    
    img = requests.get(content_info.get("cover_url"))
    with open("{}.jpg".format(content_img_path), "wb") as f:
        f.write(img.content)
    
    title = content_info.get("title")
    nickname = content_info.get("nickname")
    album_title = content_info.get("album_title")
    intro = content_info.get("intro")
    play_count = 0
    
    content = {
        "title": title,
        "content_type": content_type,
        "nickname": nickname,
        "album_title": album_title,
        "intro": intro,
        "play_count": play_count,
        "audio": "{}.mp3".format(content_name),
        "cover": "{}.jpg".format(content_name)
    }
    
    MONGO_DB.content.insert_one(content)

    settings中的配置:

    import pymongo
    import os
    
    # 数据配置
    mongo_client = pymongo.MongoClient(host='127.0.0.1',port=27017)
    MONGO_DB = mongo_client["KingEight"]
    
    # 资源目录配置
    IMAGE_PATH = "Images"
    MUSIC_PATH = "Music"
    
    #数据采集配置
    XPP_URL = "http://m.ximalaya.com/tracks/%s.json"
    
    # 协议格式
    RET = {
        'code':0,
        'msg':'',
        'data':{ },
    }

    新建一个项目,在index.html,输入mta构建底部栏

    在main.html中,输入ms构建轮播图。mg九宫格

    mui.js中的配置:

    后端代码:

    from flask import Flask,request,jsonify
    from serv import content
    
    app = Flask(__name__)
    
    app.register_blueprint(content.content_bp)
    
    
    if __name__ == '__main__':
        app.run('0.0.0.0',9527,debug=True)

    然后在player.html

     然后再index.html页面接受。

     在后端建立一个websocket连接:

    from flask import Flask,request
    from geventwebsocket.websocket import WebSocket
    from gevent.pywsgi import WSGIServer
    from geventwebsocket.handler import WebSocketHandler
    
    import json
    
    websocket_app = Flask(__name__)
    user_socket_dict = { }
    
    @websocket_app.route('/ws/<uid>')
    def ws(uid):
        user_socket = request.environ.get('wsgi.websocket') # type:WebSocket
        user_socket_dict[uid] = user_socket
        print(len(user_socket_dict),user_socket_dict)
        while True:
            msg = user_socket.receive()
            print(msg)
            msg_dict = json.loads(msg)
            to_user = msg_dict.get('to_user') # {to_user:123,music:abc.mp3}
            to_user_socket = user_socket_dict.get(to_user)
            print(to_user_socket)
            to_user_socket.send(msg_dict.get('music'))
    if __name__ == '__main__':
        http_serv = WSGIServer(("0.0.0.0",9528),websocket_app,handler_class=WebSocketHandler)
        http_serv.serve_forever()

    今日开发者日志:

       1.基于requests模块实现数据采集
            
        2.基于mui + HTML5PLUS mlist图文列表,实现数据展示
            原生js mlist图文列表
            ES6 mlist图文列表
            
        3.基于HTML5PLUS Audio接口 实现手机APP的音频内容播放
            CreatePlayer,Audio在Stop清空 AudioPlayer
        
        4.基于Websocket实现手机遥控器播放儿歌

  • 相关阅读:
    linux下,如何把整个文件夹上传到服务器(另一台linux)
    设置树莓派SSH连接因超时闲置断开(转)
    使用Cygwin登录Raspberry PI
    一个简单的工作日计算
    多线程端点服务发布程序(摘)
    编程实践笔记{Java 线程 并发处理 Webservice}(转)
    ActiveMQ安装
    Android轻量级ORM框架ActiveAndroid入门教程(转)
    我的第一个Raspberry PI装置
    java hashcode的Delphi实现
  • 原文地址:https://www.cnblogs.com/yb635238477/p/9827672.html
Copyright © 2011-2022 走看看