golang 玩Go!按下按钮可在播放和暂停之间切换。 #arduino #mocp#post-json

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 玩Go!按下按钮可在播放和暂停之间切换。 #arduino #mocp#post-json相关的知识,希望对你有一定的参考价值。

package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"github.com/hybridgroup/gobot"
	"github.com/hybridgroup/gobot/api"
	"github.com/hybridgroup/gobot/platforms/firmata"
	"github.com/hybridgroup/gobot/platforms/gpio"
	"io/ioutil"
	"math/rand"
	"net/http"
	"os/exec"
)

type Stuff struct {
	Pof int
}

func post() {
	stuff := &Stuff{rand.Int()}
	buf, _ := json.Marshal(stuff)
	body := bytes.NewBuffer(buf)

	client := &http.Client{}
	req, _ := http.NewRequest("POST", "http://push.com/data/~123", body)
	req.Header.Add("Content-Type", "application/json")
	req.Header.Add("X-Auth", "apiKey")

	resp, _ := client.Do(req)
	response, _ := ioutil.ReadAll(resp.Body)
	fmt.Println("resp:" + string(response) + " req:" + string(buf))
}

func mocp() {
	exec.Command("sh","-c","mocp -G").Output()
}

func main() {
	gbot := gobot.NewGobot()
	api.NewAPI(gbot).Start()

	firmataAdaptor := firmata.NewFirmataAdaptor("myFirmata", "/dev/ttyACM0")

	button := gpio.NewButtonDriver(firmataAdaptor, "btn", "2")
	led := gpio.NewLedDriver(firmataAdaptor, "led", "13")

	gobot.On(button.Events["push"], func(data interface{}) {
		led.On()
	})
	gobot.On(button.Events["release"], func(data interface{}) {
  		led.Off()
    		post() // Just 4 fun
    		mocp()
  	})

	goduino := gbot.AddRobot(
		gobot.NewRobot("duino", []gobot.Connection{firmataAdaptor}, []gobot.Device{button, led}, nil))

	goduino.AddCommand("blink", func(params map[string]interface{}) interface{} {
		led.Toggle()
		return fmt.Sprintf("Ok: 200")
	})

	gbot.Start()
}

当用户按下主页按钮时停止声音

【中文标题】当用户按下主页按钮时停止声音【英文标题】:Stop sound when user push home button 【发布时间】:2010-10-25 14:33:42 【问题描述】:

当用户按下主页按钮声音暂停时,我现在在 viewDidLoad 中播放声音。当用户再次运行应用程序时,从之前暂停的地方播放声音。当用户按下主页按钮时,我如何停止它(不暂停)?

【问题讨论】:

【参考方案1】:

查看应用程序委托方法:

- (void)applicationDidEnterBackground:(UIApplication *)application

- (void)applicationWillResignActive:(UIApplication *)application

当您的应用关闭时,您可以在此处放置可以运行的代码。尝试保持指向您的 AVAudioplayer 的指针,并在必要时“停止”其当前正在播放的内容。 用户回来后一定要重启!

“UIApplicationDelegate 协议参考”的文档有帮助:)

【讨论】:

想象我有一个有两个视图的应用程序并且这个播放器在第二个视图中我如何从 applicationDidEnterBackground 调用播放器来停止它? 要么将指向播放器的指针放在应用程序委托中,要么将其作为视图的属性,并以某种方式从应用程序委托中获取指向您的视图的指针。我通常有一个应用程序范围的声音播放类,它以某种方式连接到 App-Delegate。请记住,您可以通过调用 [UIApplication sharedApplication].delegate 从代码中的任何位置获取指向委托的指针。【参考方案2】:
NSString *path = [[NSBundle mainBundle] pathForResource:@"*" ofType:@"mp3"];

如果您使用* 代替 mp3 名称,音乐将停止播放。

【讨论】:

这个答案是错误的。 pathForResource 返回资源的路径;它与如何播放音频文件无关。

以上是关于golang 玩Go!按下按钮可在播放和暂停之间切换。 #arduino #mocp#post-json的主要内容,如果未能解决你的问题,请参考以下文章

当 AVAudioPlayer 完成播放时切换 tableview 单元格图像

当我按下快速播放按钮时,声音播放失败

如何访问 Siri Remote 播放/暂停按钮和覆盖菜单按钮

单击按钮然后播放声音,暂停用户界面,如果您发送垃圾邮件,按钮会继续播放? [复制]

更新 MPRemoteCommandCenter 播放/暂停按钮

当用户按下主页按钮时停止声音