ホームページ >データベース >mysql チュートリアル >MySQL と Go 言語を使用してシンプルなオーディオ プレーヤーを開発する方法

MySQL と Go 言語を使用してシンプルなオーディオ プレーヤーを開発する方法

王林
王林オリジナル
2023-09-20 16:10:521430ブラウズ

MySQL と Go 言語を使用してシンプルなオーディオ プレーヤーを開発する方法

MySQL と Go 言語を使用してシンプルなオーディオ プレーヤーを開発する方法

オーディオ プレーヤーは、私たちの一般的なアプリケーションの 1 つです。MySQL と Go 言語を使用することで、シンプルなオーディオプレーヤーを簡単に実装できます。この記事では、MySQL を使用して音声ファイルに関する情報を保存し、Go 言語を使用して音声ファイルのアップロード、ダウンロード、再生機能を実装する方法を紹介します。

まず、オーディオ ファイルに関する情報を保存するデータベースを作成する必要があります。データベースの名前が audio_player であるとすると、オーディオ ファイル情報を保存するために audios という名前のテーブルを作成する必要があります。このテーブルには次のフィールドが含まれます。

  • id: 自動インクリメントされる主キーを使用したオーディオ ファイルの一意の識別子。
  • name: 音声ファイルの名前。
  • path: サーバー内のオーディオ ファイルの保存パス。

以下は、audios テーブルを作成するための MySQL コードです:

CREATE TABLE `audios` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(100) NOT NULL,
  `path` VARCHAR(200) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

次に、Go 言語を使用して、アップロード、ダウンロード、およびオーディオファイルの再生機能。まず、github.com/gin-gonic/gin パッケージを使用して基本的な Web サーバーを実装する必要があります。以下は、単純な Web サーバーを実装する Go コードの例です。

package main

import (
    "github.com/gin-gonic/gin"
)

func main() {
    router := gin.Default()

    router.Static("/static", "./static")

    router.Run(":8080")
}

上記のコードでは、router.Static() メソッドを使用して /static を変換します。 path 静的ファイルへのパスを指定します。静的ファイルはサーバーの ./static ディレクトリに保存されます。

次に、github.com/jinzhu/gorm パッケージを使用して MySQL データベースに接続し、音声ファイルのアップロードおよびダウンロード機能を実装する必要があります。以下は、音声ファイルをアップロードおよびダウンロードするための Go コードの例です。

package main

import (
    "fmt"
    "log"
    "net/http"
    "os"
    "path/filepath"
    "strconv"

    "github.com/gin-gonic/gin"
    "github.com/jinzhu/gorm"
    _ "github.com/jinzhu/gorm/dialects/mysql"
)

type Audio struct {
    ID   int
    Name string
    Path string
}

func main() {
    db, err := gorm.Open("mysql", "username:password@/audio_player?charset=utf8mb4&parseTime=True&loc=Local")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    db.AutoMigrate(&Audio{})

    router := gin.Default()

    router.Static("/static", "./static")

    router.POST("/upload", func(c *gin.Context) {
        file, err := c.FormFile("file")
        if err != nil {
            c.String(http.StatusBadRequest, fmt.Sprintf("get form err: %s", err.Error()))
            return
        }

        filename := strconv.FormatInt(time.Now().UnixNano(), 10) + filepath.Ext(file.Filename)
        if err := c.SaveUploadedFile(file, "static/"+filename); err != nil {
            c.String(http.StatusBadRequest, fmt.Sprintf("upload file err: %s", err.Error()))
            return
        }

        audio := Audio{
            Name: file.Filename,
            Path: filename,
        }
        db.Create(&audio)

        c.String(http.StatusOK, fmt.Sprintf("File %s uploaded successfully", file.Filename))
    })

    router.GET("/download/:id", func(c *gin.Context) {
        id, err := strconv.Atoi(c.Param("id"))
        if err != nil {
            c.String(http.StatusBadRequest, fmt.Sprintf("get id err: %s", err.Error()))
            return
        }

        var audio Audio
        if err := db.First(&audio, id).Error; err != nil {
            c.String(http.StatusInternalServerError, fmt.Sprintf("get audio err: %s", err.Error()))
            return
        }

        c.File("./static/" + audio.Path)
    })

    router.Run(":8080")
}

上記のコードでは、## で音声ファイルの情報を表す Audio 構造体を作成しました。 #main 関数では、gorm.Open() 関数を通じて MySQL データベースに接続し、db.AutoMigrate() メソッドを使用して audios テーブル 。

続いて、

/uploadというPOSTルートを定義し、音声ファイルのアップロード機能を実装しました。このルートでは、アップロードされた音声ファイルを c.FormFile() メソッドを通じて取得し、サーバーの static ディレクトリに保存し、音声ファイルの関連情報を挿入します。データベースに。

次に、音声ファイルのダウンロード機能を実装するために、

/download/:idのGETルートを定義します。このルートでは、db.First() メソッドを通じてデータベースからオーディオ ファイル情報を取得し、c.File() メソッドを使用してオーディオ ファイルをダウンロードを処理するためのクライアント。

最後に、

router.Run() メソッドを使用して Web サーバーを起動し、クライアントからのリクエストを待機します。

上記の手順により、MySQL と Go 言語を使用したシンプルなオーディオ プレーヤーの開発に成功しました。このオーディオ プレーヤーでは、オーディオ ファイルをアップロードし、ファイルの一意の識別子に基づいて対応するオーディオ ファイルをダウンロードできます。同時に、他の方法 (HTML5 オーディオ タグなど) を使用してオーディオ ファイルの再生機能を実装することもできます。

この記事が、MySQL と Go 言語を使用してシンプルなオーディオ プレーヤーを開発する方法を理解するのに役立つことを願っています。実際のアプリケーションでは、セキュリティとパフォーマンスの最適化についてさらに多くの問題を考慮する必要があることに注意してください。

以上がMySQL と Go 言語を使用してシンプルなオーディオ プレーヤーを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。