小编Maj*_*mjr的帖子

在Raspberry Pi上使用go.dbus和omxplayer

我试图在omxplayer上使用D-Bus接口来控制正在运行的视频.我正在尝试使用这里找到的go.dbus库:https: //github.com/guelfey/go.dbus

omxplayer文档提供了一个我可以成功使用的dbuscontrol.sh脚本.它设置了一些环境变量,然后可以使用dbus-send来查询omxplayer.

我试图在Go中重现这个,但我一直收到错误"任何.service文件都没有提供org.mpris.MediaPlayer2的名称"

这是我的代码:

package main

import (
    "encoding/json"
    "fmt"
    "github.com/guelfey/go.dbus"
    "github.com/guelfey/go.dbus/introspect"
    "os"
)

func main() {
    os.Setenv("OMXPLAYER_DBUS_ADDR", "/tmp/omxplayerdbus.pi")
    os.Setenv("OMXPLAYER_DBUS_PID", "/tmp/omxplayerdbus.pi.pid")
    conn, err := dbus.SessionBus()
    if err != nil {
        panic(err)
    }
    node, err := introspect.Call(conn.Object("org.mpris.MediaPlayer2.omxplayer", "/org/mpris/MediaPlayer2"))
    if err != nil {
        fmt.Println(err)
    }
    data, _ := json.MarshalIndent(node, "", "    ")

    var s []string
    err = conn.BusObject().Call("org.freedesktop.DBus.ListNames", 0).Store(&s)
    if err != nil {
        fmt.Fprintln(os.Stderr, "Failed to get list of owned names:", err)
        os.Exit(1)
    }

    fmt.Println("Currently owned names …
Run Code Online (Sandbox Code Playgroud)

dbus go raspberry-pi omxplayer

10
推荐指数
1
解决办法
1815
查看次数

Python Flask请求之间的持久对象

我正在为Raspberry Pi上的OMXPlayer创建一个Web界面.我正在尝试创建一个更像REST的API,用于在播放时控制视频.我遇到的问题是如何在播放时控制视频.

目前我可以创建一个Player对象,作为一些可用于启动和停止视频的方法.

@main.route("/video", methods=["GET", "POST"])
@login_required
def video():
    form = VideoForm()

    if form.validate_on_submit():
        url = form.url.data
        vid_output = form.vid_output.data
        player = Player(url=url, output=vid_output)
        player.toggle_pause()
        return redirect('/video')

    return render_template("video.html", form=form)
Run Code Online (Sandbox Code Playgroud)

现在我想要另一个可以再次运行Player.toggle_pause()方法的URL.

@main.route("/video/stop", methods=["GET", "POST"])
@login_required
def video_stop():
    player.toggle_pause()
Run Code Online (Sandbox Code Playgroud)

我的问题是我找不到在两个请求之间保持此对象的方法.视频将在发送第一个请求后开始播放,但尝试停止或控制它将不允许我访问创建的对象.有没有办法在两个单独的请求之间保留此对象?

python rest flask raspberry-pi

3
推荐指数
1
解决办法
7781
查看次数

标签 统计

raspberry-pi ×2

dbus ×1

flask ×1

go ×1

omxplayer ×1

python ×1

rest ×1